Java HashMap
Java HashMap
在 ArrayList
章节中,你学习了数组如何以有序集合存储项目,并且你必须使用索引号 (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 Main {
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()
方法并引用其键
删除项目
要删除项目,请使用 remove()
方法并引用键
要删除所有项目,请使用 clear()
方法
HashMap 大小
要找出有多少个项目,请使用 size()
方法
遍历 HashMap
使用 **for-each** 循环遍历 HashMap
中的项目。
注意:如果您只想获取键,请使用 keySet()
方法;如果您只想获取值,请使用 values()
方法
例子
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
其他类型
HashMap 中的键和值实际上是对象。在上面的示例中,我们使用了类型为“String”的对象。请记住,Java 中的 String 是一个对象(而不是基本类型)。要使用其他类型(如 int),您必须指定一个等效的 包装类:Integer
。对于其他基本类型,请使用:Boolean
用于 boolean,Character
用于 char,Double
用于 double,等等
例子
创建一个名为 ** people** 的 HashMap
对象,它将存储 String
**键** 和 Integer
**值**
// Import the HashMap class
import java.util.HashMap;
public class Main {
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));
}
}
}
完整的 HashMap 参考
有关 HashMap 方法的完整参考,请访问我们的 Java HashMap 参考。