世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。 ——摘自周志明

map遍历性能记录

map遍历可以通过keySet或者entrySet方式。

性能上:entrySet略胜一筹,原因是keySet获取到key后再根据key去获取value,在查一遍,所以慢一些。

keySet:

//先获取map集合的所有键的Set集合
Set<String> keySet = map.keySet();
//有了Set集合,就可以获取其迭代器
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
    String key = it.next();
//有了键可以通过map集合的get方法获取其对应的值。
String value = map.get(key);
}

entrySet:

//通过entrySet()方法将map集合中的映射关系取出(这个关系就是Map.Entry类型)
Set<Map.Entry<String, String>> entrySet = map.entrySet();
//将关系集合entrySet进行迭代,存放到迭代器中
Iterator<Map.Entry<String, String>> it2 = entrySet.iterator();
while (it2.hasNext()) {
    //获取Map.Entry关系对象me
    Map.Entry<String, String> me = it2.next();
    //通过关系对象获取key
    String key2 = me.getKey();
    //通过关系对象获取value
    String value2 = me.getValue();
}

 jdk1.8推荐forEach

myMap.forEach((k, v)->{
            System.out.println("key:"+ k +",value:" + v);
        });

 

posted @ 2019-04-07 23:48  白杯与咖啡  阅读(554)  评论(0编辑  收藏  举报