如何在java 8 map中使用stream
文件大小: 43k
源码售价: 10 个金币 积分规则     积分充值
资源说明: Java 8 中使用 Stream 遍历 Map Java 8 中引入了 Stream 概念, Stream 是一种非常强大的功能,可以使我们更加简单的操作 Map 对象。Map 是 Java 中非常常用的一个集合类型,我们通常也需要去遍历 Map 去获取某些值。那么,我们怎么在 Map 中使用 Stream 呢? 基本概念 Map 有 key,value,还有表示 key,value 整体的 Entry。创建一个 Map:`Map someMap = new HashMap<>();` 获取 Map 的 EntrySet 获取 Map 的 entrySet:`Set> entries = someMap.entrySet();` 获取 Map 的 key 获取 Map 的 key:`Set keySet = someMap.keySet();` 获取 Map 的 value 获取 Map 的 value:`Collection 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 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 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 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,希望对大家的学习有所帮助。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。