Sou*_*Cub 4 java java-8 java-stream
也许这是变态,但我想在上面的级别上合并内部流的结果.
例如,我们有一些带有数据的复杂地图:
Map<String, List<Map<String, Object>>> dataMap
Run Code Online (Sandbox Code Playgroud)
我需要收集所有对象列表.现在我这样做:
Set<Object> segmentIds = new HashSet<>();
dataMap.values().forEach(maps -> maps.forEach(map -> segmentIds.add(map.get("object"))));
Run Code Online (Sandbox Code Playgroud)
但它不是那么漂亮的方式.但我无法理解如何将数据从内循环传递到外部以最终收集它们.
没有任何外部物体可以做到吗?
怎么样:
Set<Object> collect = dataMap.values()
.stream()
.flatMap(Collection::stream)
.map(map -> map.get("object"))
.collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |