10.【推荐】使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历。 说明:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.foreach方法。 正例:values()返回的是V值集合,是一个list集合对象;keySet()返回的是K值集合,是一个Set集合对象;entrySet()返回的是K-V值组合集合。
其他部分借鉴:http://blog.csdn.net/wtljiayou/article/details/53638284
以前我们在遍历Map的时候通常使用如下方式:
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
for (Map.Entry<String, Integer> stringIntegerEntry : items.entrySet()){
System.out.println("key:" + stringIntegerEntry.getKey() + ";value:" + stringIntegerEntry.getValue());
}
其结果如下:
key:A;value:10
key:B;value:20
key:C;value:30
key:D;value:40
key:E;value:50
key:F;value:60
从JDK8开始,可以使用如下的方式进行遍历:
Map<String, Integer> items = new HashMap<>();
items.put("A", 10);
items.put("B", 20);
items.put("C", 30);
items.put("D", 40);
items.put("E", 50);
items.put("F", 60);
items.forEach((k, v) -> System.out.println("key:" + k + ";value:" + v));
其结果如下:
key:A;value:10
key:B;value:20
key:C;value:30
key:D;value:40
key:E;value:50
key:F;value:60