使用流 API 从 HashMap 中收集值到一个数组中

huangapple go评论75阅读模式
英文:

Collect values from HashMap into one array using streams api

问题

Sure, here's the translation:

我有一个包含字符串键和ArrayList值的地图。我想使用流 API,将所有值中的数组作为一个数组返回。

Map<Integer, ArrayList<String>> map = new HashMap<>();

结果:一个包含所有值数组中的字符串的ArrayList<String>,最好是唯一值。

英文:

I have a map, containing strings as a key and ArrayList as values. I want to use stream api to get as a result all the Arrays from values as one array.

Map&lt;Integer,  ArrayList&lt;String&gt;&gt; map = new HashMap&lt;&gt;();

Result: one ArrayList&lt;String&gt; containing all the Strings from value arrays and preferably unique values.

答案1

得分: 4

这是您要的翻译内容:

您是否正在查看此内容:

List<String> distinctValues = map.values().stream() // Stream<ArrayList<String>>
        .flatMap(List::stream)                      // Stream<String>
        .distinct()
        .collect(Collectors.toList());

如果您更喜欢将结果作为 ArrayList,可以使用:

        .collect(Collectors.toCollection(ArrayList::new));
英文:

Are you looking to this :

List&lt;String&gt; distinctValues = map.values().stream() // Stream&lt;ArrayList&lt;String&gt;&gt;
        .flatMap(List::stream)                      // Stream&lt;String&gt;
        .distinct()
        .collect(Collectors.toList());

If you prefer ArrayList as a result, then use :

        .collect(Collectors.toCollection(ArrayList::new));

huangapple
  • 本文由 发表于 2020年10月14日 18:12:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/64351091.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定