Java 8 只映射到值类型集合
Java 8 map to only value type collection
我只想将我的 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());
这 return 是一组 Map.Entry
。在这个例子中它是 Map<String, String>
所以我只希望它是 return 值位(字符串),我试过 .collect(Collectors.toSet(HashMap::getValue))
但那没有用。那么我在这里缺少什么?
您必须再添加一步才能映射到值:
myMap.entrySet().parallelStream()
.filter(entry -> entry.getKey().startsWith("a"))
.map(entry -> entry.getValue())
.collect(Collectors.toSet());
我只想将我的 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());
这 return 是一组 Map.Entry
。在这个例子中它是 Map<String, String>
所以我只希望它是 return 值位(字符串),我试过 .collect(Collectors.toSet(HashMap::getValue))
但那没有用。那么我在这里缺少什么?
您必须再添加一步才能映射到值:
myMap.entrySet().parallelStream()
.filter(entry -> entry.getKey().startsWith("a"))
.map(entry -> entry.getValue())
.collect(Collectors.toSet());