Javaストリームと数を含む個別の要素をリスト

user2440671:

それは、コレクション内のユニークな要素をプリントアウトし、各要素の数を含めるために、単一のJavaスチームステートメントを使用することが可能です場合、私は思ったんだけど。

例えば、私が持っていた場合:

List<String> animals = Arrays.asList("dog", "cat", "pony", "pony", "pony", "dog");

私は、ストリームを印刷したいと思います:

cat - 1
dog - 2
pony - 3
ラビンドラRanwala:

あなたは、それがとても好き行うことができます

Map<String, Long> result = animals.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

使用するCollectors.groupingByグループに同じキーを持つ要素を。その後、適用countingカウントを取得するには、各グループのためのダウンストリームコレクタを。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222521&siteId=1