Map集合几种遍历方式的性能比较
首先构造一个 HashMap 集合:
1 HashMap<String,Object> map = new HashMap<>();
2 map.put("A","1");
3 map.put("B","2");
4 map.put("C","3");
①、分别获取 key 集合和 value 集合。
1 //1、分别获取key和value的集合
2 for(String key : map.keySet()){
3 System.out.println(key);
4 }
5 for(Object value : map.values()){
6 System.out.println(value);
7 }
②、获取 key 集合,然后遍历key集合,根据key分别得到相应value
1 //2、获取key集合,然后遍历key,根据key得到 value
2 Set<String> keySet = map.keySet();
3 for(String str : keySet){
4 System.out.println(str+"-"+map.get(str));
5 }
③、得到 Entry 集合,然后遍历 Entry
1 //3、得到 Entry 集合,然后遍历 Entry
2 Set<Map.Entry<String,Object>> entrySet = map.entrySet();
3 for(Map.Entry<String,Object> entry : entrySet){
4 System.out.println(entry.getKey()+"-"+entry.getValue());
5 }
④、迭代
1 //4、迭代
2 Iterator<Map.Entry<String,Object>> iterator = map.entrySet().iterator();
3 while(iterator.hasNext()){
4 Map.Entry<String,Object> mapEntry = iterator.next();
5 System.out.println(mapEntry.getKey()+"-"+mapEntry.getValue());
6 }
基本上使用第三种方法是性能最好的,
第一种遍历方法在我们只需要 key 集合或者只需要 value 集合时使用;
第二种方法效率很低,不推荐使用;
第四种方法效率也挺好,关键是在遍历的过程中我们可以对集合中的元素进行删除。

浙公网安备 33010602011771号