Java Streams で GroupBy を使用した発生数のカウント
Java Stream API は、データを効率的に操作および集計するための強力なメカニズムを提供します。一般的なタスクの 1 つは、ストリーム内の要素の出現をカウントすることです。 groupBy() メソッドでこれを実現するには、追加のコレクターを利用する必要があります。
次のコード スニペットを考えてみましょう。これは、ストリーム内の要素をマップに収集することを目的としています。ここで、キーは一意の要素を表し、値はそれらの出現を表します。
List<String> list = Arrays.asList("Hello", "Hello", "World"); // Desired output: // {Hello=2, World=1}
これを実現するには、groupBy() メソッドと Collectors.counting() コレクターを使用して、 counting:
import java.util.*; import java.util.stream.*; class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, Long> counted = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println(counted); } }
説明:
結果として得られるカウントされたマップには、要素としてキーが含まれ、それぞれのカウントとして値が含まれます。
{Hello=2, World=1}
あるいは、特定のシナリオでの効率を考慮して、コレクターを使用して探索することもできます。 .groupingByConcurrent。特定のユースケースが同時グループ化の安全要件と一致しているかどうかを必ず評価してください。
以上が「groupBy()」を使用して Java ストリーム内の要素の出現をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。