Java Stream の groupBy を使用した発生数のカウント
Java では、ストリームを利用してデータを効率的に集約できます。一般的な操作の 1 つは、項目を値でグループ化し、その出現回数をカウントすることです。
例
文字列のリストがあり、それぞれの一意の文字列の頻度をカウントしたいとします。 。目標は、キーが文字列、値がその出現回数であるマップを作成することです。
Counting Collector を使用した groupBy
これを達成するには、次のようにします。 groupBy メソッドをカウントコレクターと組み合わせて使用できます。 groupBy メソッドは、指定されたキーに基づいて要素をグループに編成します。この場合、文字列を ID によってグループ化します。
Map<String, Long> wordToFrequency = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
このコードでは、Function.identity() は文字列自体をグループ化キーとして取得し、基本的に元の要素を保持します。 Collectors.counting() は、各グループ内の要素の数を返すコレクターを提供します。
Result
グループ化してカウントした後、必要な数のマップを取得します。 :
{Hello=2, World=1}
このマップには、元の各一意の文字列の出現数が含まれますlist.
効率に関する考慮事項
大規模なデータセットの場合、Collectors.groupingByConcurrent を使用すると効率が向上する可能性があります。並列方式で動作し、マルチコア環境でのパフォーマンスを向上させます。ただし、このアプローチは、要素の順序やスレッドの安全性が重要なシナリオには適さない可能性があります。
以上がストリームを使用して Java で文字列の出現を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。