java - 如何使用 Java 流展平 map 值

标签 java lambda java-8 java-stream

我是 Java 流的新手,手头有问题。我有一张这样的 map :

Map<String, List<String>> specialProductsMap

我想将映射值展平为一个集合,该集合包含 specialProductsMap 列表中的所有字符串值。我如何使用 Java Streams 执行此操作?

最佳答案

您可以使用 flatMap 运算符来完成这件事。这是它的样子。

Set<String> valueSet = specialProductsMap.values().stream()
    .flatMap(List::stream)
    .collect(Collectors.toSet());

关于java - 如何使用 Java 流展平 map 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57361260/

相关文章:

java - 适当的数据结构或实现类,用于保存一个小但不断变化的集合

java - 从 NetCDF 4.5 Grib2Record 中提取天气预报数据

java - Java的Matcher.replaceAll如何获取内部匹配结果?

java.text.ParseException : Unparseable date: "28.дек.2018"

java - 如何通过 dl4j 正确使用我的神经网络?

java - 使用 [a-z] 正则表达式在 Java 中拆分字符串

python - 如何使用 lambda 作为默认参数?

c# - 将类的多个属性传递给函数并返回自定义属性的值

c# - 用于创建动态Where子句的表达式树抛出与参数相关的错误

Java-8:Stream 如何将 Map<K, List<D>> 转换为 Map<D, List<K>>