ホームページ >Java >&#&チュートリアル >Java 8 Streams を使用して重複要素の出現を効率的にカウントするにはどうすればよいですか?

Java 8 Streams を使用して重複要素の出現を効率的にカウントするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-15 04:29:021074ブラウズ

How can I use Java 8 Streams to efficiently count occurrences of duplicate elements?

groupBy を使用した Java 8 ストリームでの出現数のカウント

Java 8 ストリームでは、groupBy メソッドを使用して、特定のプロパティに基づいて要素をグループ化できます。または価値。カウントなどの別のコレクターと組み合わせると、ストリーム内の重複要素の出現を効率的にカウントできます。

例を考えてみましょう:

List<String> list = Arrays.asList("Hello", "Hello", "World");
Map<String, Long> wordToFrequency = list.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

この例では、 Collect メソッドに、引数として Collector を取るオーバーロードを指定します。コレクター内では、groupingBy を使用して、文字列値 (identity 関数) に基づいて項目をグループ化します。次に、これを Collectors.counting() と組み合わせて、各一意の文字列の出現をカウントします。

その結果、各キーが一意の文字列であり、対応する値がその出現数であるマップを取得します。リスト。この場合、マップには次のものが含まれます:

{Hello=2, World=1}

このアプローチは非常に効率的で使いやすく、特定のプロパティに基づいてストリーム内の要素の出現をカウントする必要があるさまざまなシナリオに適しています。 。必要に応じて、groupingByConcurrent を利用してパフォーマンスを向上させることもできることに注意してください。

以上がJava 8 Streams を使用して重複要素の出現を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。