有没有一些简单的方法来转换Map<Key, List<Value>>
进入Set<Value>
获取一组嵌套在 map 中的所有独特元素?我知道这应该可以使用 reduce
或 flatmap
但我正在努力寻找正确的组合。
我知道我可以使用 for 循环来执行此操作,但我想使用流来执行此操作。
最佳答案
Set<Value> set = map.values().stream()
.flatMap(List::stream)
.collect(Collectors.toSet());
Set
不会添加已经存在的值,因此您必须确保您的 Value
对象具有适当的 equals()
方法。
编辑:根据this post,List::stream
在功能上等同于list -> list.stream()
.
https://stackoverflow.com/questions/66396769/