当前位置:网站首页>Map的遍历方法
Map的遍历方法
2022-08-06 05:27:00 【三省同学】

public static void main(String[] args) {
Map<String, String> map = Maps.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
// 方法一 Iterator
System.out.println("迭代器");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println("key=" + entry.getKey() + " value=" + entry.getValue());
}
// 方法二 entrySet
System.out.println("entrySet");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key=" + entry.getKey() + " value=" + entry.getValue());
}
// 方法三 keySet
System.out.println("entrySet");
for (String s : map.keySet()) {
System.out.println("key=" + s + " value=" + map.get(s));
}
// 方法四 values
System.out.println("values");
for (String s : map.values()) {
System.out.println("value =" + s);
}
//方法五 forEach
System.out.println("forEach");
map.forEach((key,value) ->{
System.out.println(key+":"+value);
});
}
Map接口概述
Map是一个将键映射到值的对象。映射不能包含重复的键:每个键最多可以映射到一个值。它对数学函数抽象进行建模。该Map接口包括用于基本操作(例如put、get、remove、 containsKey、containsValue、size和empty)、批量操作(例如putAll和clear)和集合视图(例如keySet、entrySet和values)的方法。
Java 平台包含三个通用Map实现: HashMap、 TreeMap和 LinkedHashMap。它们的行为和性能与Set接口中所述的 HashSet、TreeSet和LinkedHashSet完全类似。
Map集合Lambda操作:
// 按部门分组员工
Map<Department, List<Employee>> byDept = employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment));
// 按部门计算工资总和
Map<Department, Integer> totalByDept = employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.summingInt(Employee::getSalary)));
// 将学生分为合格和不合格
Map<Boolean, List<Student>> passFailing = students.stream()
.collect(Collectors.partitioningBy(s -> s.getGrade()>= PASS_THRESHOLD));
// 按城市对 Person 对象进行分类
Map<String, List<Person>> peopleByCity
= personStream.collect(Collectors.groupingBy(Person::getCity));
// 级联收集器
Map<String, Map<String, List<Person>>> peopleByStateAndCity
= personStream.collect(Collectors.groupingBy(Person::getState,
Collectors.groupingBy(Person::getCity)))
亦余心之所善兮,虽九死其犹未悔。
边栏推荐
猜你喜欢

Qt 5.14.2 connect to Mysql database

关于printf函数Warning: format string is not a string literal(potentially insecure)!

WebRTC新增FFmpeg视频编解码模块

CVPR 2022 | SharpContour:一种基于轮廓变形 实现高效准确实例分割的边缘细化方法

yolov4, yolov5 training nuscenes dataset/nuscenes dataset to coco format

简易数据库管理系统(DBMS)设计与实现

C#脚本CSharpScript

工业相机镜头选型

Ad Hoc Query - Kylin

利用R通过顺企网根据公司名称爬取企业地址
随机推荐
【R语言】一文解决R语言包安装不上问题(尤其是devtools)
十四、一起学习Lua 元表(Metatable)
关于Warning:Implicit declaration of function “xxx” is invalid in C99警告!
基于肌电信号(sEMG) 的深度学习手势分类
AMPCOLOY940 美国进口高导热无铍铜合金
ClickHouse 物化视图
【多传感器融合】卡尔曼滤波
Class类对象实例化,newInstance方法,工厂+反射方法,使用反射调用构造方法,反射调用方法,反射调用成员
ffplay源码分析:代码框架
R_文字识别(OCR)
【R语言】在Jupyter Notebook中使用conda管理的R语言
Qt教程(2) : Qt元对象系统
R语言处理时间序列数据
Pearson相关系数R代码实现
Qt implements animation transition when window size changes
利用R解决常见的数据匹配问题
流媒体基础知识TS流 PS流 ES流区别
Qt智能指针
SRS4.0 RTC模块增加Gop cache
【图像处理】from skimage.measure import compare_psnr, compare_ssim ImportError: DLL load failed:找不到指定的模块