Java 8 foreach

来源:互联网 发布:星野ナミ 知乎 编辑:程序博客网 时间:2024/06/16 14:37

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:10key:B;value:20key:C;value:30key:D;value:40key:E;value:50key: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:10key:B;value:20key:C;value:30key:D;value:40key:E;value:50key:F;value:60
原创粉丝点击