由高效-低效进行排序
1、在for-each循环中通过Map.entrySet遍历key和value该方式是最常见最可取的方式,尤其是在数据容量较大的情况。
Map map = new HashMap();
for (Map.Entry entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
注意:如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。
2、在for-each循环中遍历keys或values如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
Map map = new HashMap();
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
for (String value : map.values()) {
System.out.println("value= " + value + " and value= " + map.get(key));
}
该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
3、通过Map.entrySet使用iterator遍历key和value使用泛型:
Map map = new HashMap();
Iterator> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
不使用泛型:
Map map = new HashMap();
Iterator entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println("Key = " + key + ", Value = " + value);
}
4、通过键找值遍历(效率低)
// 二次取值(效率低)
Map map = new HashMap();
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}
参考:
Java中如何遍历Map对象的4种方法_Java高知-CSDN博客_map遍历
遍历map的几种方法_咕噜噜的博客-CSDN博客_遍历map



