Java 8 中使用 Stream 遍历 Map Java 8 中引入了 Stream 概念, Stream 是一种非常强大的功能,可以使我们更加简单的操作 Map 对象。Map 是 Java 中非常常用的一个集合类型,我们通常也需要去遍历 Map 去获取某些值。那么,我们怎么在 Map 中使用 Stream 呢? 基本概念 Map 有 key,value,还有表示 key,value 整体的 Entry。创建一个 Map:`Map<String, String> someMap = new HashMap<>();` 获取 Map 的 EntrySet 获取 Map 的 entrySet:`Set<Map.Entry<String, String>> entries = someMap.entrySet();` 获取 Map 的 key 获取 Map 的 key:`Set<String> keySet = someMap.keySet();` 获取 Map 的 value 获取 Map 的 value:`Collection<String> values = someMap.values();` 使用 Stream 遍历 Map 我们可以通过其他几个 Stream 来遍历 Map。使用 Stream 获取 Map 的 key,我们先给 Map 添加几个值: ```java someMap.put("jack","20"); someMap.put("bill","35"); ``` 如果我们想查找 age=20 的 key,则可以这样做: ```java Optional<String> optionalName = someMap.entrySet().stream() .filter(e -> "20".equals(e.getValue())) .map(Map.Entry::getKey) .findFirst(); log.info(optionalName.get()); ``` 因为返回的是 Optional,如果值不存在的情况下,我们也可以处理: ```java optionalName = someMap.entrySet().stream() .filter(e -> "Non ages".equals(e.getValue())) .map(Map.Entry::getKey).findFirst(); log.info("{}",optionalName.isPresent()); ``` 如果有多个值,我们可以这样写: ```java someMap.put("alice","20"); List<String> listnames = someMap.entrySet().stream() .filter(e -> e.getValue().equals("20")) .map(Map.Entry::getKey) .collect(Collectors.toList()); log.info("{}",listnames); ``` 使用 Stream 获取 Map 的 value 上面我们获取的 Map 的 key,同样的我们也可以获取 Map 的 value: ```java List<String> listAges = someMap.entrySet().stream() .filter(e -> e.getKey().equals("alice")) .map(Map.Entry::getValue) .collect(Collectors.toList()); log.info("{}",listAges); ``` 总结 Stream 是一种非常强大的功能,通过和 Map 相结合,我们可以更加简单的操作 Map 对象。这个例子展示了如何在 Java 8 中使用 Stream 遍历 Map,希望对大家的学习有所帮助。
































- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络营销的市场分析.pptx
- 电气系统安全讲座.ppt
- 经管系课程实训报告网络营销实训报告.doc
- 网络综合布线系统与施工技术(0007).pdf
- 最新田源基于单片机的电子闹钟设计.doc
- 京东商城软件需求说明书.doc
- 基于 Python 的雅各比与赛德尔迭代法图形化解方程组实现
- 物流项目管理复习题.doc
- 综合布线技术与工程实训教程3综合布线系统的传输和连接介质.pptx
- 基因工程综合练习题.doc
- 软件工程数字媒体与游戏邹昆2016.ppt
- 专升本C语言程序设计试卷.docx
- 加强施工企业项目管理的几点认识和体会.doc
- 申办网络文化经营许可证(含虚拟货币发行)公司业务发展报告.docx
- 装饰装修工程项目管理常用表格.doc
- 项目管理工作内容.docx


