我有一个Stream<String>
文件,现在我想将相等的单词组合成一个Map<String, Integer>
,该单词在中的频率很重要Stream<String>
。
我知道我必须使用collect(Collectors.groupingBy(..))
,但是我不知道如何使用它。
如果有人可以提供一些解决该问题的提示,那就太好了!
Map<String, Long>
使用Collectors.counting()
as下游收集器很容易创建:
Stream<String> s = Stream.of("aaa", "bb", "cc", "aaa", "dd");
Map<String, Long> map = s.collect(Collectors.groupingBy(
Function.identity(), Collectors.counting()));
如果您不喜欢Long
输入文字,则可以使用Integer
这种方式:
Map<String, Integer> mapInt = s.collect(Collectors.groupingBy(
Function.identity(),
Collectors.reducing(0, str -> 1, Integer::sum)));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句