java中Map遍历的4种方式

目录

1、map.entrySet()方式

2、map.keySet()方式

3、map.values()方式

4、forEach方式


本文以如下map案例:

Map<String, String> map = new HashMap<>();
map.put("student1", "张三");
map.put("student2", "李四");
map.put("student3", "王五");

1、map.entrySet()方式

  • entrySet()方法: 获取map中所有的键值对,结果为Set集合
  • 在jdk版本小于1.8时,该种方式经常使用,效率高
//获取map中的所有键值对,结果为Set类型的集合
Set<Map.Entry<String, String>> entries = map.entrySet();
/** 遍历Set集合、开发中常见的遍历方式 */
//1、增强for形式遍历结果
for (Map.Entry<String, String> entry : entries) {
     System.out.println(entry);
}
//2、Lamdba表达式遍历结果
entries.forEach(entry-> System.out.println(entry));

2、map.keySet()方式

  • keySet()方法:获取map中的所有键(key),结果为Set集合
  • 该种方式比 entrySet()方式较慢,且比方式4慢,实际开发中也可使用
//获取map中的所有键,结果为Set类型的集合
Set<String> keys = map.keySet();
//根据key获取map中的元素
for (String key : keys) {
    System.out.println(map.get(key));
}

3、map.values()方式

  • values():直接获取map所有的值(value),组装为一个Collection集合
  • 该种方式效率最低,使用到最上层的Collection接口,开发中应当避免使用
//直接获取map所有的值(value),组装为一个Collection集合【Collection集合是Set、List的父接口】
Collection<String> values = map.values();
//遍历Collection集合
for (String value : values) {
    System.out.println(value);
}

4、forEach方式

  • 需JDK8及以上,直接支持遍历map
  • 该种方式是方式1(entrySet)的进一步封装,优化了代码的简洁性,性能与entrySet略慢(因为进一步封装了下),开发中经常使用

语法:

//当业务代码只有一句时,"{}"符号与";"符号可以省略

map.forEach((键变量名称,值遍历名称)->{

        //业务代码

});

map.forEach((key,value)-> System.out.println(value));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/3472.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop MapReduce知识预览,WordCount词频统计案例

文章目录Mapreduce阶段组成&#xff1a;MapReduce实例进程MapReduce优缺点MapReduce编程案例-WordCount词频统计实现思路操作步骤Mapreduce MapReduce先分再和、分而治之的思想 Map&#xff1a;对一组数据元素进行某种重复式的处理 Reduce&#xff1a;对Map的中间结果进行某…

用JS+CSS打造你自己的弹幕王国,让网页动起来!

文章目录前言主要内容实现方法DOM方法显现效果代码CANVAS方法显现效果代码总结更多宝藏前言 &#x1f60e;&#x1f973;&#x1f60e;&#x1f920;&#x1f62e;&#x1f916;&#x1f648;&#x1f4ad;&#x1f373;&#x1f371; 用JSCSS打造你自己的弹幕王国&#xff0c…

蓝桥杯刷题冲刺 | 倒计时14天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.最长递增2.走迷宫3.解立方根4.回文特判5.修改数组1.最长递增 题目 链接&#xff1a; 最长递增…

【蓝桥杯集训·周赛】AcWing 第96场周赛

文章目录第一题 AcWing 4876. 完美数一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第二题 AcWing 4877. 最大价值一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第三题 AcWing 4878. 维护数组一、题目1、原…

微软Bing加入ChatGPT后如何用?教你12种问法黄金公式学会了,又能研究新副业赚钱又能加快学习速度

自从Bing连上chatgpt之后&#xff0c;chatgpt的回答不再像之前那样模棱两可&#xff0c;变得准确起来&#xff0c;至少给出的答案比起往常的会有更多一些的参考价值&#xff0c;也可以帮助大家能够更加深入细节去问问题和梳理问题的流程和解答的方式 当然问法不同得出的答案也是…

【数据结构】链表OJ题

目录面试题 02.04 分割链表剑指 Offer II 027 回文链表160 相交链表141 环形链表142 环形链表 II138 复制带随机指针的链表面试题 02.04 分割链表 定义lesshead和greaterhead链接小于和大于等于k的值分别设置哨兵位和尾节点指针最后将两表去除哨兵位再链接 struct ListNode* p…

Day927.如何进行组件化分析和设计? -系统重构实战

如何进行组件化分析和设计&#xff1f; Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于如何进行组件化分析和设计&#xff1f;的内容。 一、Sharing 1.0&#xff1a;案例诊断 对 Sharing 做个案例诊断。 1、代码结构 Sharing 1.0 采用的是单体的架构&#xff0c;…

提升网站性能:Nginx五种高效负载均衡策略

前言 本文收录于我是沐风晓月的csdn专栏《linux基本功-系统服务实战》&#xff0c; 关于nginx的系列后面会汇总起来&#xff0c;关注我&#xff0c;一起学习与成长。 本专栏写作的过程中&#xff0c;联合了csdn几位大佬&#xff0c;目前正在整理更新目录&#xff0c;力争让大…

Maven依赖管理

POM POM是一个 XML 文件&#xff0c;其中包含有关项目的信息以及 Maven 用于构建项目的配置详细信息。它包含大多数项目的默认值。这方面的例子是构建目录&#xff0c;它是target; 源目录&#xff0c;即src/main/java; 测试源目录&#xff0c;即src/test/java; 等等。当执行任…

css绘制一个Pinia小菠萝

效果如下&#xff1a; pinia小菠萝分为头部和身体&#xff0c;头部三片叶子&#xff0c;菠萝为身体 头部 先绘制头部的盒子&#xff0c;将三片叶子至于头部盒子中 先绘制中间的叶子&#xff0c;利用border-radius实现叶子的效果&#xff0c;可以借助工具来快速实现圆角的预想…

初识HTTP协议

文章目录一、HTTP协议是什么&#xff1f;二、Fiddler三、HTTP 请求 (Request)初识URL方法(method)初识GET方法初识POSTGET与POST之间的区别认识报头(header)CookieHTTP报文格式状态码(Status code)一、HTTP协议是什么&#xff1f; HTTP是属于一种我们应用层最常用的协议之一&a…

数组(完全二叉树)向下建堆法与堆排序O(N*logN)

TIPS AdjustUp & AdjustDown向上调整AdjustUp与向下调整AdjustDown的参数是一个数组&#xff08;完全二叉树&#xff09;需要进行调整操作的数值的下标/一个数组&#xff08;完全二叉树&#xff09;堆元素个数需要调整操作的数值的下标。实际上就是对完全二叉树当中的某一点…

redis 集群

1. 主从复制 1.1 一主二从 主机shutdown后情况如何&#xff1f;从机是上位还是原地待命 从机不动&#xff0c;原地待命&#xff0c;从机数据可以正常使用&#xff1b;等待主机重启动归来 主机shutdown后&#xff0c;重启后主从关系还在吗&#xff1f;从机还能是否复制&…

[数据结构] 用两个栈实现队列详解

文章目录 一、栈实现队列的特点分析 1、1 具体分析 1、2 整体概括 二、用栈模拟队列代码的实现 2、1 手撕 栈 代码 2、1、1 stack.h 2、1、2 stack.c 2、2 用栈实现队列代码 &#x1f64b;‍♂️ 作者&#xff1a;Ggggggtm &#x1f64b;‍♂️ &#x1f440; 专栏&#xff1a;…

Prometheus cadvisor容器监控和node-exporter节点监控

往期文章 Prometheus监控系统 https://blog.csdn.net/qq_39578545/article/details/108754585 Docker之compose介绍 使用一个Dockerfile模板文件可以定义一个单独的应用容器&#xff0c;如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品&#xff0c;Docker Comp…

STM-32:按键控制LED灯 程序详解

目录一、基本原理二、接线图三、程序思路3.1库函数3.2程序代码注&#xff1a;一、基本原理 左边是STM322里电路每一个端口均可以配置的电路部分&#xff0c;右边部分是外接设备 电路图。 配置为 上拉输入模式的意思就是&#xff0c;VDD开关闭合&#xff0c;VSS开关断开。 浮空…

Linux的基础知识

根目录和家目录根目录&#xff1a;是Linux中最底层的目录&#xff0c;用"/"表示家目录&#xff1a;当前用户所在的路径&#xff0c;用“~”表示&#xff0c;root用户的家目录和普通用户的家目录不一样&#xff0c;普通用户的家目录在/home路径下&#xff0c;每一个用…

【SSM】Spring + SpringMVC +MyBatis 框架整合

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ SSM框架整合一、导入相关依赖二、配置web.xml文…

【C#进阶】C# 集合类

序号系列文章16【C#进阶】C# 索引器17【C#进阶】C# 委托18【C#进阶】C# 事件文章目录前言1、集合类是什么2、动态数组&#xff08;ArrayList&#xff09;3、压缩数组&#xff08;BitArray&#xff09;4、哈希表&#xff08;Hashtable&#xff09;5、队列&#xff08;Queue&…

C语言数据结构初阶(8)----栈与队列OJ题

CSDN的uu们&#xff0c;大家好。这里是C语言数据结构的第八讲。 目标&#xff1a;前路坎坷&#xff0c;披荆斩棘&#xff0c;扶摇直上。 博客主页&#xff1a; 姬如祎 收录专栏&#xff1a;数据结构与算法栈与队列的知识点我➡➡队列相关点我➡➡栈相关2. 用栈实现队列原题链接…
最新文章