JAVA 中HashMap的几种遍历方式

article/2025/10/13 13:47:49

JAVA 中HashMap的几种遍历方式

创建HashMap对象

        Map<String, Integer> map = new HashMap<>();map.put("手表", 1000);map.put("手机", 4000);map.put("牙刷", 200);map.put("耳机",1500);

1.通过遍历map的键的方式,使用键找值进行遍历。

  • 现获取Map集合的全部键的Set集合。
  • 遍历键的Set集合,然后通过键找到对应的值。
        //1.通过遍历key的方式进行遍历,键找值// map的keySet()返回的是set集合Set<String> keys = map.keySet();// 遍历mapfor (String key : keys) {System.out.println(key+" " +map.get(key));}//1的简洁写法for (String s : map.keySet()) {System.out.println(s+" " +map.get(s));}

因为hashmap存储时时无序的,所以遍历出来的顺序和存储顺序不同,如果想有序,可以使用LinkedHashMap
在这里插入图片描述

2. 通过键值对的方式进行遍历

  • 先把Map集合转换成Set集合,Set中每个元素都是键值对实体类型Map.Entry<String, Integer>
  • 遍历Set集合,然后提取键以及提取值。
        // 2.键值对的方式进行遍历// 我们可以通过获得map中的entry,来对map进行遍历, 调用map.entrySet(),会将key和value封装成Map.Entry对象Set<Map.Entry<String, Integer>> entry = map.entrySet();for (Map.Entry<String, Integer> sentry : entry) {System.out.println(sentry.getKey() + " " + sentry.getValue());}// 2的简洁写法for (Map.Entry<String, Integer> stringIntegerEntry : map.entrySet()) {System.out.println(stringIntegerEntry.getKey() +" " + stringIntegerEntry.getValue());}

在这里插入图片描述

3. 与2方法类似,但是可以使用迭代器遍历键值对的Set集合。

       //3.通过构造Map.Entry<String, Integer>的迭代器,通过迭代器对map.entrySet()进行遍历,不过本质与第二种方法相同,不推荐。Iterator<Map.Entry<String,Integer>> iter = map.entrySet().iterator();while(iter.hasNext()){Map.Entry<String,Integer> temp = iter.next();System.out.println(temp.getKey() + " " + temp.getValue());}

4. JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式,lamda表达式遍历

       // 4.JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式,lamda表达式遍历map.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String s, Integer integer) {System.out.println(s +" "+ integer);}});// 4的简化写法map.forEach((k,v)->{System.out.println(k +" "+ v);});

另外还可对Map的值进行遍历

        //遍历map的valueCollection<Integer> value = map.values();for (Integer integer : value) {System.out.println(integer);}// 简化写法for (Integer integer : map.values()) {System.out.println(integer);}

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

相关文章

HashMap的三种遍历方式

集合在应用以及面试中都占有很重要的位置&#xff0c;今天就说说HashMap的遍历方式&#xff0c;偶然在一次面试中被问到的。 关于具体的实现&#xff0c;可以看源码。 import java.util.HashMap; import java.util.Iterator; import java.util.Map;public class Test {public…

HashMap概述及其三种遍历方式(简单明了)

一、HashMap概述&#xff1b; HashMap是一个散列表&#xff0c;它存储的是键值对&#xff08;key-value&#xff09;映射&#xff1b;HashMap继承AbstractMap&#xff0c;实现了Map&#xff0c;Cloneable&#xff0c;Serializable接口&#xff1b;HashMap的实现不是同步的&…

HashMap 的7种遍历方式

HashMap 遍历 大体上可以分为4类: 1,迭代器 2&#xff0c;ForEach 遍历 3&#xff0c;lambda 表达式遍历 4&#xff0c;StreamsApi 遍历 但是每种类型下有不同的实现方式&#xff0c;所以又可以分为7种&#xff1a; 案例demo 1&#xff0c;使用迭代器 EntrySet 的方式遍历 Test…

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;安装程序好像需要从微软的服务器上获取文件&#…