如何使用Java流展平地图值

Shr*_*eth 3 java lambda java-8 java-stream

我是Java流的新手,手头有问题。我有这样的地图:

Map<String, List<String>> specialProductsMap
Run Code Online (Sandbox Code Playgroud)

我想将映射值展平到一个集合,其中包含列表中所有String值specialProductsMap。如何使用Java Streams做到这一点?

Rav*_*ala 5

您可以使用flatMap运算符来完成此操作。这是它的外观。

Set<String> valueSet = specialProductsMap.values().stream()
    .flatMap(List::stream)
    .collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)