java中Map遍历的4种方式

news/2024/11/17 20:34:12/

目录

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.ppmy.cn/news/35157.html

相关文章

【JavaScript 逆向】数美滑块逆向分析

声明本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01;案例目标验证码&#xff1a;aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ以上均做了脱敏处理&#xff0c;Base64 编码及解码方…

Rt-thread入门第一章 全局理解(个人理解)

这里是阅读文档的一些个人总结&#xff0c;因为是个人总结&#xff0c;所以肯定会有偏差 线程是什么呢&#xff1f; 理解为独立的&#xff0c;死循环的&#xff0c;函数个体 操作系统意味着线程切换&#xff0c;线程切换需要做些什么&#xff1f; 需要保存当前寄存器的值&a…

论文解读:PP-LiteSeg: A Superior Real-Time Semantic Segmentation Model

发表时间&#xff1a;2022 论文地址&#xff1a;https://arxiv.org/abs/2204.02681 项目地址&#xff1a;https://github.com/PaddlePaddle/PaddleSeg PP-LiteSeg&#xff0c;一个新的轻量级实时语义分割任务模型&#xff0c;在分割精度和推理速度之间实现了一种最先进的权衡…

(算法基础)朴素版的Dijkstra算法

适用情景在最短路问题当中的单源最短路(一号点到其他所有点之间的距离)的只有正权边的情况。时间复杂度O(N^2)算法解释&#xff08;朴素版的Dijkstra&#xff09;首先是关于这个图的存储&#xff0c;图的话主要是分为稠密图与稀疏图。稠密图就是说n的平方与m是一个量级的&#…

C++分析以下关于指针的操作有什么问题

代码一:按值传递/按引用传递 按值传递是指,在函数调用时,将参数的值复制一份传递给函数,函数中对参数值的修改不会影响到原始值 对于指针类型的参数,在按值传递的情况下,传递给函数的是指针变量的值(即指针变量所存储的地址),而不是指针所指向的内存地址。因此,当在…

一文看懂数据仓库

数据仓库数据仓库的概念数据仓库的主要特征数据仓库的分层数据仓库的分层介绍原始数据层&#xff1a;ODS&#xff08;Operational Data Store&#xff09;数据仓库层&#xff1a;DW&#xff08;Data Warehouse&#xff09;数据明细层&#xff1a;DWD&#xff08;Data Warehouse…

进阶C语言——字符函数和字符串函数【详解】(二)

文章目录1. strtok2. strerror3. memcpy4. memmove5. memcmp6. memset1. strtok sep参数是个字符串&#xff0c;定义了用作分隔符的字符集合第一个参数指定一个字符串&#xff0c;它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记strtok函数找到str中的下一个标记…

算法训练:贪心与回溯

目录 1.手套&#xff08;贪心算法&#xff09; 2.字符串通配符&#xff08;回溯算法&#xff09; 1.手套 题目描述&#xff1a; 在地下室里放着n种颜色的手套&#xff0c;手套分左右手&#xff0c;但是每种颜色的左右手手套个数不一定相同。A先生现在要出门&#xff0c;所以…