如何使用流将地图值聚合到集合中

是否有一些简单的方法如何转换Map<Key, List<Value>>Set<Value>获取一组嵌套在地图中的所有唯一元素?我知道这应该可以使用,reduce或者flatmap我正在努力寻找正确的组合。

我知道我可以使用 for 循环执行此操作,但我想使用流执行此操作。

回答

Set<Value> set = map.values().stream()
                             .flatMap(List::stream)
                             .collect(Collectors.toSet());

Set不会添加已经存在的值,因此您必须确保您的Value对象具有正确的equals()方法。


编辑: List::stream相当于list -> list.stream()根据这篇文章的功能。


以上是如何使用流将地图值聚合到集合中的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>