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 java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
访问项
要访问 HashMap
中的值,请使用 get()
方法并带入参数 key:
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities.get("England"));
}
}
移除项
要删除项目,请使用 remove()
方法并带入参数 key:
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
capitalCities.remove("England");
System.out.println(capitalCities);
}
}
要删除所有项,请使用 clear()
方法:
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
capitalCities.clear();
System.out.println(capitalCities);
}
}
HashMap 大小
要找出有多少项,请使用 size()
方法:
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities.size());
}
}
循环遍历 HashMap
使用 for-each 循环遍历 HashMap
的项。
注意:如果只需要键,请使用 keySet()
方法;如果只需要值,请使用 values()
方法:
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
}
}
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
for (String i : capitalCities.values()) {
System.out.println(i);
}
}
}
实例
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, String> capitalCities = new HashMap<String, String>();
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
}
}
其他类型
HashMap
中的 键和值 实际上是对象。在上面的例子中,我们使用了 "String" 类型的对象。请记住,Java 中的字符串是对象(而不是基本类型)。要使用其他类型,例如 int,必须指定一个等效的包装类:Integer
。对于其他基本类型,使用:Boolean
表示布尔,Character
表示字符,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("Name: " + i + " Age: " + people.get(i));
}
}
}