0

私はStream<String>ファイルの を持っています。今、等しい単語を に結合したいと思いMap<String, Integer>ますStream<String>

を使用する必要があることはわかっていcollect(Collectors.groupingBy(..))ますが、使用方法がわかりません。

この問題を解決する方法のヒントを提供できる人がいれば、とてもうれしいです!

4

1 に答える 1

1

as ダウンストリーム コレクターMap<String, Long>を使用して作成するのは非常に簡単です。Collectors.counting()

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)));
于 2015-08-12T04:53:32.503 に答える