Java HashMap

Java HashMap

ArrayList 一章中,您了解到数组将项存储为有序集合,并且必须使用索引号(int 类型)访问它们。然而,HashMap 将项目存储在 "键/值" 对中,您可以通过另一种类型的索引(例如 String 字符串)访问它们。

一个对象用作另一个对象(值)的键(索引)。它可以存储不同的类型:String 字符串键和 Integer 整数值,或者相同的类型,比如:String 键和 String值:

实例

创建名为 capitalCitiesHashMap 对象,该对象将存储 String String :

  1. import java.util.HashMap; // import the HashMap class
  2. HashMap<String, String> capitalCities = new HashMap<String, String>();

添加项

HashMap 类有许多有用的方法。例如,要向其中添加项,请使用 put() 方法:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. System.out.println(capitalCities);
  10. }
  11. }

访问项

要访问 HashMap 中的值,请使用 get() 方法并带入参数 key:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. System.out.println(capitalCities.get("England"));
  10. }
  11. }

移除项

要删除项目,请使用 remove() 方法并带入参数 key:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. capitalCities.remove("England");
  10. System.out.println(capitalCities);
  11. }
  12. }

要删除所有项,请使用 clear() 方法:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. capitalCities.clear();
  10. System.out.println(capitalCities);
  11. }
  12. }

HashMap 大小

要找出有多少项,请使用 size() 方法:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. System.out.println(capitalCities.size());
  10. }
  11. }

循环遍历 HashMap

使用 for-each 循环遍历 HashMap 的项。

注意:如果只需要键,请使用 keySet() 方法;如果只需要值,请使用 values() 方法:

实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. for (String i : capitalCities.keySet()) {
  10. System.out.println(i);
  11. }
  12. }
  13. }
实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. for (String i : capitalCities.values()) {
  10. System.out.println(i);
  11. }
  12. }
  13. }
实例
  1. import java.util.HashMap;
  2. public class Main {
  3. public static void main(String[] args) {
  4. HashMap<String, String> capitalCities = new HashMap<String, String>();
  5. capitalCities.put("England", "London");
  6. capitalCities.put("Germany", "Berlin");
  7. capitalCities.put("Norway", "Oslo");
  8. capitalCities.put("USA", "Washington DC");
  9. for (String i : capitalCities.keySet()) {
  10. System.out.println("key: " + i + " value: " + capitalCities.get(i));
  11. }
  12. }
  13. }

其他类型

HashMap 中的 实际上是对象。在上面的例子中,我们使用了 "String" 类型的对象。请记住,Java 中的字符串是对象(而不是基本类型)。要使用其他类型,例如 int,必须指定一个等效的包装类Integer。对于其他基本类型,使用:Boolean 表示布尔,Character 表示字符,Double 表示双精度,等等:

实例

创建一个名为 peopleHashMap 对象,它将存储 String类型 的键和 Integer 类型的值:

  1. // Import the HashMap class
  2. import java.util.HashMap;
  3. public class Main {
  4. public static void main(String[] args) {
  5. // Create a HashMap object called people
  6. HashMap<String, Integer> people = new HashMap<String, Integer>();
  7. // Add keys and values (Name, Age)
  8. people.put("John", 32);
  9. people.put("Steve", 30);
  10. people.put("Angie", 33);
  11. for (String i : people.keySet()) {
  12. System.out.println("Name: " + i + " Age: " + people.get(i));
  13. }
  14. }
  15. }