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());