Java8⾼效遍历map_Java8中Map的遍历⽅式总结

java;gutter:true; public class LambdaMap { private Map map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); map.put("key4", 4); map.put("key5", 5); map.put("key5", 'h'); }</p> <pre><code> ;gutter:true;
/**
* 遍历Map的⽅式⼀
* 通过Map.keySet遍历key和value
*/
@Test
public void testErgodicWayOne() {
System.out.println("———————Before JAVA8 ——————————");
for (String key : map.keySet()) {
System.out.println("map.get(" + key + ") = " + map.get(key));
}
System.out.println("———————JAVA8 ——————————");
map.keySet().forEach(key -> System.out.println("map.get(" + key + ") = " + map.get(key)));
}

java;gutter:true; /*<em> * 遍历Map第⼆种 * 通过Map.entrySet使⽤Iterator遍历key和value </em>/ @Test public void testErgodicWayTwo() { System.out.println("---------------------Before JAVA8 ------------------------------"); Iterator> iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); System.out.println("key:value = " + entry.getKey() + ":" + entry.getValue()); } System.out.println("---------------------JAVA8 ------------------------------"); map.entrySet().iterator().forEachRemaining(item -> System.out.println("key:value=" + item.getKey() + ":" + item.getValue())); }</p> <pre><code> ;gutter:true;
/**
* 遍历Map第三种
* 通过Map.entrySet遍历key和value,在⼤容量时推荐使⽤
*/
@Test
public void testErgodicWayThree() {
System.out.println("———————Before JAVA8 ——————————");
for (Map.Entry entry : map.entrySet()) {
System.out.println("key:value = " + entry.getKey() + ":" + entry.getValue());
}
System.out.println("———————JAVA8 ——————————");
map.entrySet().forEach(entry -> System.out.println("key:value = " + entry.getKey() + ":" + entry.getValue()));
}

java;gutter:true; System.out.println("---------------------Before JAVA8 ------------------------------"); for (Object value : map.values()) { System.out.println("map.value = " + value); } System.out.println("---------------------JAVA8 ------------------------------"); map.values().forEach(System.out::println); // 等价于map.values().forEach(value -> System.out.println(value)); }</p> <pre><code> ;gutter:true;
/**
* 遍历Map第五种
* 通过k,v遍历,Java8独有的
*/
@Test
public void testErgodicWayFive() {
System.out.println("———————Only JAVA8 ——————————");
map.forEach((k, v) -> System.out.println("key:value = " + k + ":" + v));
}
}

Java Map各遍历⽅式的性能⽐较
1. 阐述 对于Java中Map的遍历⽅式,很多⽂章都推荐使⽤entrySet,认为其⽐keySet的效率⾼很多.理由是:entrySet⽅法⼀次拿到所有key和
value的集合:⽽keySet拿到的 …

Original: https://www.cnblogs.com/interdrp/p/16443455.html
Author: 锐洋智能
Title: Java8⾼效遍历map_Java8中Map的遍历⽅式总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537815/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 数据结构–稀疏数组和队列

    最近在学尚硅谷的数据结构,特此开一篇blog来做笔记 当一个数组中大部分元素是0时,或者为同一个值的数组时,可以用稀疏数组来保存该数组,节省储存空间(二维数组储存太浪费空间了) 应…

    Java 2023年6月8日
    0108
  • Lombok 同时使用 @Data 和 @Builder 的巨坑,千万别乱用!

    来源:juejin.cn/post/7103011031672176677 问题背景 Lombok同时使用@Data和@Builder ,会出现构建无参构造器报错!最终导致编译不通…

    Java 2023年6月15日
    070
  • NO3系统升级-资产棚卸

    Powered by 博客园 | | | | 发表于2016-03-02 09:03 大哉乾元万物资始 阅读(129 ) 评论() 编辑 Original: https://www…

    Java 2023年6月8日
    083
  • 【2022暑期集训】最小生成树专题题解

    题目背景 Farmer John 被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。 题目描述 FJ 已经给他的农场安排了一条…

    Java 2023年6月5日
    072
  • Spring Boot Event 观察者模式,轻松带你实现业务解耦!

    写在最前 实际业务开发过程中,业务逻辑可能非常复杂,核心业务 + N个子业务。如果都放到一块儿去做,代码可能会很长,耦合度不断攀升,维护起来也麻烦,甚至头疼。还有一些业务场景不需要…

    Java 2023年5月29日
    096
  • Xshell连Linux使用vim时无法在小键盘输入数字

    Xshell连Linux使用vim时无法在小键盘输入数字 原因分析 当xshell终端类型不是”VT220″或者”ANSI”的情况下…

    Java 2023年6月9日
    0110
  • Spring中controller中关于GET和POST请求的参数接收

    Spring中controller中关于GET和POST请求的参数接收 GET请求 参数用&符号连接在一起[/get?name=tom] //无参 //没有任何参数的请求 …

    Java 2023年6月9日
    060
  • 回溯法:数组总和III

    题目 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任…

    Java 2023年6月8日
    097
  • WebMvcConfigurerAdapter过时替换接口或类

    (注意!)WebMvcConfigurerAdapter 在spring 5.0中已经弃用了。 实现接口 继承类 WebMvcConfigureAdapter 比较常用的重写接口 …

    Java 2023年6月13日
    074
  • 操作MySQL数据进行记录的随意排序

    说到排序,想必大家都知道MySQL中的”ORDER BY”这个关键词吧,使用它可以实现查询数据根据某一字段(或多个字段)的值排序,那么如何实现数据的任意排序…

    Java 2023年6月6日
    078
  • java html2image

    java html转图片 &#x63A8;&#x8350;&#x4E00;&#x4E2A;&#x597D;&#x7528;&…

    Java 2023年5月29日
    092
  • 在vue中使用echarts

    1.引入echarts 先通过npm安装echarts npm run echarts–save 2.在main.js中 import * as echarts fro…

    Java 2023年6月7日
    094
  • 戏说领域驱动设计(十一)——纠偏

    今儿写这个题目胆子有点大,不过还是得冒险整一篇(我怕您看完了骂我),一是出于经验分享,另外则是为了后面我们讲案例的时候做好铺垫。好的代码需要注意的事项其实挺多的,您真让我一骨脑儿都…

    Java 2023年6月7日
    084
  • 基于Javaweb,Mysql生物信息数据管理系统

    一、项目简介 生物信息学是跨越和融合世界科技中两个最活跃领域的一-门新兴前沿学科,它使用计算和分析方法来解决生物学问题。生物信息平台则是一个集生物信息算法WEB集成,生物信息发布,…

    Java 2023年6月8日
    082
  • Oracle扩展表空间

    Oracle扩展表空间 前言: Oracle表空间扩展最大为32G,目前我还未找到可以打破限制的办法。 一、查看表空间信息和使用情况 查看表空间的名字及文件所在位置 — &amp…

    Java 2023年6月8日
    0140
  • 保姆级SpringBoot+Vue图片上传到阿里云OSS教程

    小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,…

    Java 2023年6月9日
    094
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球