1.使用Iterator遍历HashMap
HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 遍历HashMap
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
String key = entry.getKey();
String value = entry.getValue();
// 打印key和value
System.out.println(key + " : " + value);
}
2.使用forEach遍历HashMap
HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 遍历HashMap
map.forEach((key, value) -> {
// 打印key和value
System.out.println(key + " : " + value);
});
3.使用for-each循环遍历HashMap的keySet或values
HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 遍历HashMap的keySet
for (String key : map.keySet()) {
String value = map.get(key);
// 打印key和value
System.out.println(key + " : " + value);
}
// 遍历HashMap的values
for (String value : map.values()) {
// 打印value
System.out.println(value);
}
4.使用Stream API遍历HashMap
HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 遍历HashMap
map.entrySet().stream().forEach(entry -> {
String key = entry.getKey();
String value = entry.getValue();
// 打印key和value
System.out.println(key + " : " + value);
});
5.使用键-值对数组遍历HashMap
HashMap<String, String> map = new HashMap<>();
// 添加元素
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
// 获取键-值对数组
Object[] entries = map.entrySet().toArray();
for (Object entry : entries) {
Map.Entry<String, String> e = (Map.Entry<String, String>) entry;
String key = e.getKey();
String value = e.getValue();
// 打印key和value
System.out.println(key + " : " + value);
}
在Java开发中,使用迭代器(Iterator)遍历HashMap的方式是最常见的。因为迭代器不需要将整个HashMap加载到内存中,它只会在需要时才加载下一个元素,因此可以避免内存溢出的问题。此外,迭代器提供了一些方便的方法,例如remove()方法可以删除当前迭代的元素。
除此之外,使用for-each循环遍历HashMap的keySet或values也是一个常见的方式。这种方式的优点是简单易懂,代码量少,适用于只需要访问键或值的场景。
其他的方式虽然也可以使用,但是在实际开发中相对较少使用。