HasMap之遍历方式【7种】

HashMap的7种遍历方式

学习笔记,能帮到其他人更好了~
建议大家看原文HashMap 的 7 种遍历方式与性能分析!「修正篇」在这里插入图片描述
注:1)尽量使用 entrySet 来实现 Map 集合的遍历,性能更高
EntrySet遍历时,直接将获取到的ley与value放入entry对中,可以直接获得;
而KeySet 遍历时使用了 map.get(key),相当于又遍历了一遍 Map 集合去查询 key 所对应的值,因此效率较低。
2)Iterator迭代器 和 forEach遍历的效率相差不大

1. 下面给出各个方式的简洁代码

注:下面的entry是 Integer:String 形式

  1. Iterator迭代器遍历——EntrySet
    Iterator<Map.Entry<Integer, String>> iterator = map.EntrySet().iterator();
    while(iterator.hasNext()){
          
          
    	Map.Entry<Integer, String> entry = ietrator.next();
    	System.out.println("key--" + enrty.getKey());	
    	System.out.println("value--" + enrty.getValue());	
    }
    
  2. Iterator迭代器遍历——KeySet
    Iterator<Integer> iterator = map.KeySet().iterator();
    while(iterator.hasNext()){
          
          
    	Integer key = iterator.next();
    	System.out.println("key--" + key);
    	System.out.println("value--" + map.get(key));
    }
    
  3. For Each遍历——EntrySet
    for(Map.Entry<Integer, String> entry : map.EntrySet()){
          
          
    	 System.out.println("key--" + entry.getKey());
    	 System.out.println("value--" + entry.getValue());
    }
    
  4. For Each遍历——KeySet
    for(Integer key : map.KeySet()){
          
          
    	System.out.println("key--" + key);
    	System.out.println("value--" + map.get(key));
    }
    
  5. Lambda表达式遍历(JDK1.8+)
    map.forEach((key, value)->{
          
          
    	System.out.println("key--" + key);
        System.out.println("value--" + value);
    });
    
  6. Streams API遍历(JDK1.8+)——单线程stream()
    map.entrySet().stream().forEach((entry)->{
          
          
    	System.out.println("key--" + entry.getKey());
    	System.out.println("value--" + entry.getValue());
    });
    
  7. Streams API遍历(JDK1.8+)——多线程parallelStream()
    map.entrySet().parallelStream().forEach((entry) -> {
          
          
        System.out.println("key--" + entry.getKey());
    	System.out.println("value--" + entry.getValue());
    });
    

猜你喜欢

转载自blog.csdn.net/weixin_45463572/article/details/130439044