Map遍历的代码示例
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
map.put("key4", "value4");
map.put("key5", "value5");
// 第一种:lambda forEach
map.forEach((k, v) -> {
System.out.println(k + " :" + v);
});
// 第二种:entrySet for
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " :" + entry.getValue());
}
// 第三种:entrySet Iterator
Iterator<Map.Entry<String, String>> ei = map.entrySet().iterator();
while (ei.hasNext()) {
Map.Entry<String, String> entry = ei.next();
System.out.println(entry.getKey() + " :" + entry.getValue());
}
// 第四种:keySet for
for (String key : map.keySet()) {
System.out.println(key + " :" + map.get(key));
}
// 第五种:keySet Iterator
Iterator<String> ki = map.keySet().iterator();
while (ki.hasNext()) {
String key = ki.next();
System.out.println(key + " :" + map.get(key));
}
// 第六种:values只遍历所有的value,不能遍历key
for (String value : map.values()) {
System.out.println("value:" + value);
}
总结:
- 如果只是获取
key
或者value
,推荐使用keySet
或者values
方式 - 如果同时需要
key
和value
推荐使用entrySet
- 如果需要在遍历过程中删除元素推荐使用
Iterator