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); });