HashMap 的7种遍历方式

article/2025/10/13 13:45:41

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,使用迭代器的KeySetpublic 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());}));}

结果

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

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

原文链接:

https://blog.csdn.net/m0_46937429/article/details/114999490


http://chatgpt.dhexx.cn/article/s5bxKDs5.shtml

相关文章

Java循环录入会员信息

条件:循环录入3位会员的信息如果会员号合法&#xff0c;显示录入信息&#xff1b;否则显示录入失败

java循环练习题-计算100以内偶数之和

1&#xff1a;for 循环&#xff1a; package cn.work;public class Work1 {public static void main(String[] args) {int n 0;for (int i 0; i <100 ; i) {if (i%20){n n i;}}System.out.println("100以内的偶数和为"n);} }2&#xff1a;while 循环 packag…

java循环中的do……while循环

do……while循环格式&#xff1a; 初始化语句 &#xff1b; do { 循环体语句 &#xff1b; 条件控制语句 &#xff1b; } while&#xff08; 条件判断语句 &#xff09;&#xff1b; 基本格式&#xff1a; do { 循环体语句&#xff1b; } while&#xff08;条件判断语句…

java循环语句实现自然数1~99的遍历求和

1.1~99的全遍历求和 注意: sum变量要写在外面 main方法必须有 public class Leijia {public static void main(String[]args){int sum0;for (int i1;i<99; i){sumsumi;} System.out.println("s"sum);} }2. 1~99只遍历奇数的求和 public class Leijia {publ…

解决由于Idea/Java循环依赖造成的报错

1.环境&#xff1a; Idea&#xff0c;JrebelTomcat环境&#xff0c;Maven项目&#xff0c;分了模块。 2.报错&#xff1a; 今天用热部署的时候&#xff0c;jrebel重新编译代码的时候出了一个错误&#xff1a;Error:java: Annotation processing is not supported for module…

java 循环实体类 获取实体字段和字段对应的value

有的时候实体字段比较多&#xff0c;需要循环获取实体的字段名和字段内容&#xff0c;实现方法通过Field反射获取类的属性。 实现方式如下&#xff1a; 需要注意的是一定要设置setAccessible为ture public class test1 {public static void main(String[] args) throws Ille…

java中循环输入_如何用java循环输入并且当输入0时结束循环?

如何用java循环输入并且当输入0时结束循环? import java.util.Scanner; public class Avg {public static void main(String[] args) {Scanner input = new Scanner(System.in); double num = 1; int i = 0; double avg = 0; double sum = 0; do {System.out.print("请输…

Java 结束循环

开发工具与关键技术&#xff1a;Myeclipse 10,Java 作者&#xff1a;刘俊杰 撰写时间&#xff1a;2019年04月24日 Break控制循环 在任何循环语句的主体部分&#xff0c;均可用break控制循环的流程。break用于强制退出循环&#xff0c;不执行循环中剩余的语句。&#xff08;bre…

Java循环中的break 和 continue

CSDN话题挑战赛第1期 活动详情地址&#xff1a;https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f 参赛话题&#xff1a;Java学习记录 话题描述&#xff1a;可以记录一下平时学习Java中的一些知识点、心得、例题、常见的问题解决 目录 一. break语句与continue语…

Java循环结构—条件循环

文章目录 一、为什么要用循环&#xff08;一&#xff09; 老实用笨方法&#xff08;二&#xff09;采用循环结构方法1、采用计数循环&#xff08;for循环&#xff09;2.采用条件循环&#xff08;while循环&#xff09; 二、条件循环&#xff08;二&#xff09;前测试循环-while…

java循环中 删除List某个元素

场景&#xff1a;list中 0 至 9 的数字&#xff0c;删除list中的数字7 1.集合生成0 至 9 数字 代码&#xff1a; List<Integer> list new ArrayList<>(); for (int i 0; i < 10 ; i) {list.add(i); } System.out.println(list.toString()); 运行如下&#x…

java 循环标记_Java循环中使用标签

java中的标号是用于的continue和break语句的&#xff0c;请看下面的程序&#xff1a; class xxx { outer: for(;;) { inner: for(;;) { xxxx; xxxxx; continue inner; } //break inner; break outer; } } 这段程序中有两层循环&#xff0c;外面的一层叫outer&#xff0c;里面的…

java中的循环语句

有些程序段在某些条件下重复执行多次&#xff0c;称为循环结构程序。Java提供了3种循环语句实现循环结构&#xff0c;包括while语句、do-while语句、for语句。它们的共同点是根据给定条件来判断是否继续执行指定的程序段&#xff08;循环体&#xff09;。如果满足执行条件&…

java中的循环

java中的循环有四种 循环由四部分组成 1.初始部分&#xff1a;循环判断的变量 2.循环条件&#xff1a;布尔表达式 3.循环操作&#xff1a;循环执行的代码 4.迭代部分&#xff1a;更新循环变量 1.while循环 while的特点&#xff1a;首次判断不满足&#xff0c;则一次都不会执…

安装破解VS2015(破解使用秘钥)

一、下载VS2015专业版 http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso 注&#xff1a;光盘映像文件直接右键解压即可 二&#xff0c;使用秘钥破解 安装完vs2015 企业版/专业版后&#xff0c;在菜单帮助—注册产品&am…

VS2015社区版安装教程

虽然现在已经有了VS2017,但是在很多地方还是vs2015更加方便&#xff0c;比如&#xff0c;目前的wdk版本并不能支持VS2017,所以我不得不卸了它&#xff0c;换成Vs2015. 1.下载Vs2015 微软官网一般可以找到资源&#xff0c;我这里给出我的百度云链接链接&#xff1a;https://pan.…

Visual Studio专业版下载安装激活破解教程

Visual Studio 2015专业版安装激活破解教程 一、下载安装镜像 下载地址&#xff1a;http://msdn.itellyou.cn/ 二、安装 运行虚拟光驱&#xff0c;加载镜像文件&#xff0c;运行安装程序 剩下的就是漫长的等待了&#xff0c;安装程序好像需要从微软的服务器上获取文件&#…

VS2017 Visual Assist X破解方法

Visual Assist X是一款非常好的Microsoft Visual Studio插件&#xff0c;支持C/C&#xff0b;&#xff0b;&#xff0c;C&#xff03;&#xff0c;ASP&#xff0c;Visual Basic&#xff0c;Java和HTML等语言&#xff0c;Visual Assist X能自动识别各种关键字、系统函数、成员变…

VisualSvn破解(VS2019)

第一步&#xff1a;准备工具dnSpy &#xff08;下载地址&#xff1a;http://www.pc6.com/softview/SoftView_481260.html&#xff09; 第二步&#xff1a;查找VisualSun安装目录&#xff0c;以下地址为我的安装目录&#xff0c;供参考 说明&#xff1a;我记得以前的VisualSvn…

VS2013/VS2017 Visual Assist X安装及破解

本篇博客参照&#xff1a; https://blog.csdn.net/e295166319/article/details/80803937 1.下载VAX以及破解软件 下载链接&#xff1a; VAX下载 2.解压 3.如果之前安装了其他版本的VAX&#xff0c;请先卸载&#xff0c;卸载方法&#xff1a;打开VS-》工具-》扩展和更新&…