HashMap 的7种遍历方式

Map中的 keySet() 方法 与 Iterator 迭代的遍历,LinkedHashMap与HashMap区别 keySet()方法 如果有一个Map对象,可以使用 map.keySet() 方法获取所有的key值, Iterator迭代器 Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。 如果是HashMap、HashSet这些则打印的顺序于你插入的顺序无关,只与你插入的内容有关(根据HASHCODE排序)的。所以这样输出我们会丢失我们插入时的顺序。 如果我们需要按照插入的顺序进行迭代遍历,则创建Map时新建 LinkedHashMap 。它继承于 HashMap,底层是.. 阅读详情

HashMap 遍历

大体上可以分为4类:

1,迭代器

2,ForEach 遍历

3,lambda 表达式遍历

4,StreamsApi 遍历

但是每种类型下有不同的实现方式,所以又可以分为7种:

案例demo

1,使用迭代器 EntrySet 的方式遍历

   @Test
    //1,使用迭代器 EntrySet 的方式遍历
    public void demo1(){
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1,"娇娇");
        map.put(2,"娇娇1");
        map.put(3,"娇娇2");
        map.put(4,"娇娇3");
        map.put(5,"娇娇4");
        map.put(5,"娇娇5");
    //遍历
        Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer, String> next = iterator.next();
            System.out.println(next.getKey());
            System.out.println(next.getValue());
        }
    }

结果

2,使用迭代器的KeySet

   @Test
//   2,使用迭代器的KeySet
    public void demo1(){
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1,"娇娇");
        map.put(2,"娇娇1");
        map.put(3,"娇娇2");
        map.put(4,"娇娇3");
        map.put(5,"娇娇4");
        map.put(5,"娇娇5");
    //遍历
        Iterator<Integer> iterator = map.keySet().iterator();
        while (iterator.hasNext()){
            Integer key = iterator.next();
            System.out.print(key);
            System.out.print(map.get(key));
        }
    }

结果

3,使用 For Each EntrySet 的方式进行遍历;

  @Test
//3,使用 For Each EntrySet 的方式进行遍历;
    public void demo1(){
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1,"娇娇");
        map.put(2,"娇娇1");
        map.put(3,"娇娇2");
        map.put(4,"娇娇3");
        map.put(5,"娇娇4");
        map.put(5,"娇娇5");
    //遍历
        for (Map.Entry<Integer,String> entry: map.entrySet()
             ) {
            System.out.println("entry.getKey() = " + entry.getKey());
            System.out.println("entry.getValue() = " + entry.getValue());
        }
    }

结果

4,使用 For Each KeySet 的方式进行遍历;

  @Test
//4,使用 For Each KeySet 的方式进行遍历;
    public void demo1(){
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1,"娇娇");
        map.put(2,"娇娇1");
        map.put(3,"娇娇2");
        map.put(4,"娇娇3");
        map.put(5,"娇娇4");
        map.put(5,"娇娇5");
    //遍历
        for (Integer key: map.keySet()
             ) {
            System.out.println(key);
            System.out.println(map.get(key));
        }
    }

结果

5,使用 Lambda 表达式的方式进行遍历;

    @Test
//5,使用 Lambda 表达式的方式进行遍历;
    public void demo1() {
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1, "娇娇");
        map.put(2, "娇娇1");
        map.put(3, "娇娇2");
        map.put(4, "娇娇3");
        map.put(5, "娇娇4");
        map.put(5, "娇娇5");
        //遍历
        map.forEach((key,value) -> {
            System.out.print(key);
            System.out.print(value);


        });

    }

结果

6,使用 Streams API 单线程的方式进行遍历;

    @Test
//6,使用 Streams API 单线程的方式进行遍历;
    public void demo1() {
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1, "娇娇");
        map.put(2, "娇娇1");
        map.put(3, "娇娇2");
        map.put(4, "娇娇3");
        map.put(5, "娇娇4");
        map.put(5, "娇娇5");
        //遍历
        map.entrySet().stream().forEach((integerStringEntry -> {
            System.out.println(integerStringEntry.getKey());
            System.out.println(integerStringEntry.getValue());

        }));

    }

结果

7,使用 Streams API 多线程的方式进行遍历。

    @Test
//6,使用 Streams API 单线程的方式进行遍历;
    public void demo1() {
        //创建Map 对象
        Map<Integer, String> map = new HashMap<>();
        //添加数据
        map.put(1, "娇娇");
        map.put(2, "娇娇1");
        map.put(3, "娇娇2");
        map.put(4, "娇娇3");
        map.put(5, "娇娇4");
        map.put(5, "娇娇5");
        //遍历
        map.entrySet().parallelStream().forEach((integerStringEntry -> {
            System.out.println(integerStringEntry.getKey());
            System.out.println(integerStringEntry.getValue());

        }));

    }

结果

————————————————

版权声明:本文为优快云博主「我的代码没错」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.youkuaiyun.com/m0_46937429/article/details/114999490

HashMap 的7种遍历方式,一定有你没用过的! HashMap遍历,大体上可以分为4类迭代器ForEach遍历lambda表达式遍历StreamsApi遍历。 阅读详情

相关推荐

C++碰撞检测库FCL安装(MinGW,CMake)

FCL碰撞检测库、libccd\Eigen库编译配置,全流程问题记录

weixin_45650767的博客 4675

遍历 HashMap 的 5 种最佳方式

1. 使用 Iterator 遍历 HashMap EntrySet 2. 使用 Iterator 遍历 HashMap KeySet 3. 使用 For-each 循环遍历 HashMap 4. 使用 Lambda 表达式遍历 HashMap 5. 使用 Stream API 遍历 HashMap 我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方法 1. 使用 Iterator 遍历 HashMap EntrySet package..

ArnoBM的博客 2113

SPD5 集线器协议内容解析

​ 若不同SPD5 Hub后面的本地侧设备同时发送请求,则是22和23、24的混合过程,先通过LID裁决,再通过HID裁决,这里的LID是本地设备的,若LID一致,则看HID,由于SPD5 Hub的本地侧设备HID均为111,因此实际上是比较SPD5 Hub的HID,这个过程在前文提到,SPD5 Hub会转换HID。​ 若MR27[4]=1且MR27[3:0]=1,如果MR51[3:0]=1时,发送IBI,并且MR48[7]置1,将GETSTATUS CCC的待处理中断位[3:0]更新为0001。

weixin_50591344的博客 3860

遍历HashMap的五种方式

遍历HashMap的五种方式:1.使用 Iterator 遍历 HashMap EntrySet。2.使用 Iterator 遍历 HashMap KeySet。3.使用 For-each 循环迭代 HashMap。5.使用 Stream API 遍历 HashMap。4.使用 Lambda 表达式遍历 HashMap。

sync_with_U 5787

别再手动配电脑了!手把手教你用Windows Server 2022搭建企业AD域(附DNS配置避坑指南)

本文详细介绍了如何使用Windows Server 2022搭建企业AD域,提升20+终端的管理效率。通过实战案例和避坑指南,解析AD域的核心价值、部署步骤及DNS配置技巧,帮助企业实现集中权限管理、安全策略统一部署,显著降低IT运维成本。

weixin_30652897的博客 349

9 HAL库驱动框架简述(STM32HAL库)

HAL库外设的使用步骤总结如下:1、定义并填充xxx外设句柄结构体。2、如果遵循HAL库规范,通过HAL_xxx_MspInit()函数,实现外设底层资源的初始化,包括但不限于GPIO、时钟、DMA、中断等资源的初始化。3、调用HAL库的对应外设初始化函数,形如:HAL_xxx_Init()。4、初始化完成,开始使用外设。5、使用方法具体查看对应外设的HAL库驱动包中的说明:补充:HAL库使用主线外设初始化外设使用。

qq_25218501的博客 1981

HashMap多种遍历方式

①entrySet()遍历map1.put("小明", 1);map1.put("小红", 2);map1.put("小张", 3);//for-each + entrySet()遍历②lambda表达式遍历map1.put("小明", 1);map1.put("小红", 2);map1.put("小张", 3);//lambda表达式遍历});

hcgeng的专栏 2102

【实战案例】IBM V3500存储控制器故障诊断与更换全流程解析

本文详细解析了IBM Storwize V3500存储控制器发生故障后的完整处理流程。通过还原真实故障现场,介绍了如何利用服务助手精准定位缓存模块损坏的根源,并逐步指导完成控制器备件准备、核心部件移植更换、系统上线同步及全面功能验证的全过程,为存储运维人员提供了一份实用的实战指南。

weixin_29269441的博客 547

HashMap的7种遍历方式

HashMap的7种遍历方式

Knight 9058

基于RTL8370N的8口千兆无管理交换机硬件设计

无管理交换机是局域网边缘接入的核心基础设备,其本质是通过硬件状态机实现MAC地址学习、线速转发与自动协商,无需软件配置即可完成即插即用组网。原理上依赖高度集成的PHY+交换矩阵单芯片(如RTL8370N),结合确定性硬件逻辑替代MCU固件,保障低延迟、高可靠与零运维。技术价值体现在成本压缩、体积精简与部署极简化,广泛应用于家庭网络扩展、工业现场设备联网及嵌入式系统桥接等场景。本文详解一款基于RTL8370N的紧凑型8端口千兆无管理交换机,覆盖芯片选型依据、PHY接口设计、电源与散热优化等关键工程实践。

weixin_42327217的博客 401

PCL 动态半径滤波【2025最新版】

使用PCL实现的2022年最新SCI论文——【Design of Dust-Filtering Algorithms for LiDAR Sensors Using Intensity and Range Information in Off-Road Vehicles】 一文中提出用于自动驾驶点云剔除粉尘、雨雪等影响因素导致的噪声点滤波算法。

点云侠的博客 1473

hashmap 遍历_HashMap 的 7 种遍历方式与性能分析!

作者:Java中文社群随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:HashMap 遍历HashMap 遍历从大的方向来说,可分为以下 4 类:迭代器(...

weixin_39805529的博客 139

Spring AI 项目实战(十二):Spring Boot +AI + DeepSeek + 百度OCR 公司发票智能处理系统的技术实践(附完整源码)

本文介绍了基于百度OCR API与DeepSeek AI的发票智能处理系统,通过整合AI技术实现发票识别、信息提取和验证的全流程自动化。系统采用Spring Boot 3.2.0架构,结合百度OCR的高精度图像识别和DeepSeek的语义理解能力,显著提升了发票处理效率与准确率。关键技术包括多模型融合、智能错误纠正和自适应学习机制,实现了95%以上的识别准确率,将传统处理效率提升90%以上。该系统为数字化转型中的企业财务管理提供了智能化解决方案,具备高精度识别、实时处理、智能验证等核心优势。

博客 1627

HashMap 的 7 种遍历方式与性能分析!

本文我们讲了 HashMap 4 种遍历方式:迭代器、for、lambda、stream,以及具体的 7 种遍历方法,综合性能和安全性来看,我们应该尽量使用迭代器(Iterator)来遍历 EntrySet 的遍历方式来操作 Map 集合,这样就会既安全又高效了。参考 & 鸣谢。

weixin_44030143的博客 1128

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HashMap 的 7 种遍历方式+性能分析!

HashMap 的 7 种遍历方式+性能分析! 本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示: HashMap 遍历 HashMap 遍历从大的方向来说,可分为以下 4 类: 迭代器(Iterator)方式遍历; For Each 方式遍历; Lambda 表达式遍历(JDK 1.8+); Streams API 遍历(JDK 1.8+)。 但每种类型下又有不同的实现方式,因此具体的遍历方式又可以分为

bishe_teacher的博客 1683

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

iterator遍历_HashMap 的 7 种遍历方式与性能分析!

作者:老王随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:HashMap 遍历HashMap 遍历从大的方向来说,可分为以下 4 类:迭代器(Iterat...

weixin_39639096的博客 166

HashMap 的 7 种遍历方式与性能分析

本文我们讲了 HashMap 4 大类(迭代器、for、lambda、stream)遍历方式,以及具体的 7 种遍历方法,

Ally441的博客 996

面试官上来就让手撕HashMap的7种遍历方式,当场愣住,最后只写出了3种

以上就是HashMap中常用的7种遍历方式了,在工作中还是经常用得到的,所以希望小伙伴们能够记住并熟练使用哈。

JavaBuild的博客 1320

map迭代器遍历_HashMap 的 7 种遍历方式与性能分析!

随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:HashMap 遍历HashMap遍历从大的方向来说,可分为以下 4 类:迭代器(Iterator)方式遍...

weixin_39890517的博客 3004

iterator遍历_HashMap 的 7 种遍历方式与性能分析!(强烈推荐)

随着 JDK 1.8 Streams API 的发布,使得 HashMap 拥有了更多的遍历的方式,但应该选择那种遍历方式?反而成了一个问题。本文先从 HashMap 的遍历方法讲起,然后再从性能、原理以及安全性等方面,来分析 HashMap 各种遍历方式的优势与不足,本文主要内容如下图所示:HashMap 遍历HashMap 遍历从大的方向来说,可分为以下 4 类:迭代器(Iterator)方式...

weixin_39646706的博客 338
上一篇: 最深刻最通俗的HTTPS 原理详解,图文并茂
下一篇: 腾讯,干掉 Redis 项目,正式开源、太牛逼啦!
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值