Java HashMap



  • Java HashMap

    从上一章中您了解到,数组将项目存储为有序集合,并且您必须使用索引号(int类型)来访问它们。HashMap建立的是“键/值”对存储,你可以通过另一种类型的指数(例如String访问它们)。一个对象用作另一个对象(值)的键(索引)。它可以存储不同的类型:String键和Integer值,或相同的类型,例如:String键和String值:
    创建一个名为capitalCities的HashMap对象,该对象将存储String 键和String 值:
    import java.util.HashMap; // import the HashMap class
    
    HashMap<String, String> capitalCities = new HashMap<String, String>();
    
  • 新增元素

    HashMap类有许多有用的方法。例如,要向其中添加项目,请使用put()方法:
    // Import the HashMap class
    import java.util.HashMap;
    
    public class MyClass {
      public static void main(String[] args) {
        // Create a HashMap object called capitalCities
        HashMap<String, String> capitalCities = new HashMap<String, String> ();
    
        // Add keys and values (Country, City)
        capitalCities.put("England", "London");
        capitalCities.put("Germany", "Berlin");
        capitalCities.put("Norway", "Oslo");
        capitalCities.put("USA", "Washington DC");
        System.out.println(capitalCities);
      }
    }
    
  • 获取元素

    要访问HashMap中的元素,请使用get()方法并引用其键值:
    capitalCities.get("England");
    
  • 删除元素

    要删除元素,请使用remove()方法并引用其键值:
    capitalCities.remove("England");
    
    要删除所有项目,请使用以下clear()方法:
    capitalCities.clear();
    
  • HashMap大小

    要找出HashMap有多少个元素,请使用以下size方法:
    capitalCities.size();
    
  • 遍历HashMap

    通过for-each循环遍历HashMapa的各项。
    :如果你希望输出键,使用keySet()方法;如果你希望输出值,使用values()方法,:
    // Print keys
    for (String i : capitalCities.keySet()) {
      System.out.println(i);
    }
    
    // Print values
    for (String i : capitalCities.values()) {
      System.out.println(i);
    }
    
    // Print keys and values
    for (String i : capitalCities.keySet()) {
      System.out.println("key: " + i + " value: " + capitalCities.get(i));
    }
    
  • 其他数据类型的HashMap

    HashMap中的键和值实际上是对象。在上面的示例中,我们使用了“String”类型的对象。请记住,Java中的String是一个对象(不是原始类型)。要使用其他类型,例如int,必须指定等效的包装器类(下一章介绍包装器类):Integer。对于其他原始类型,请使用:Boolean布尔值,Character字符,Double双精度型,等等:
    创建一个HashMap名为people的对象,该对象将存储String 键和 Integer 值:
    // Import the HashMap class
    import java.util.HashMap;
    
    public class MyClass {
      public static void main(String[] args) {
    
        // Create a HashMap object called people
        HashMap<String, Integer> people = new HashMap<String, Integer>();
    
    
        // Add keys and values (Name, Age)
        people.put("John", 32);
        people.put("Steve", 30);
        people.put("Angie", 33);
    
        for (String i : people.keySet()) {
          System.out.println("key: " + i + " value: " + people.get(i));
        }
      }
    }