我想转换我的 Map <K,V>
只变成一个Set <V>
.我在任何地方都找不到任何示例,包括 Oracle 的文档:
https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
我能更进一步的是:
myMap.entrySet().parallelStream().
filter((entry) -> entry.getKey().startsWith("a"))
.collect(Collectors.toSet());
这将返回一组 Map.Entry
.在这个例子中它是 Map<String, String>
所以我只希望它返回值位(字符串),我试过.collect(Collectors.toSet(HashMap::getValue))
但这没有用。那么我在这里缺少什么?
最佳答案
您必须再添加一步才能映射到值:
myMap.entrySet().parallelStream()
.filter(entry -> entry.getKey().startsWith("a"))
.map(entry -> entry.getValue())
.collect(Collectors.toSet());
关于Java 8 只映射到值类型集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30849025/