groupBy による出現数のカウント
Java ストリームの groupBy メソッドを使用すると、指定されたキーに基づいて要素をグループに収集できます。この場合、文字列を値でグループ化し、各グループ内の出現回数をカウントしたいと考えています。
これを実現するには、2 番目の Collector を受け取る groupBy のオーバーロードを使用できます。このコレクターとして Collectors.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}
マップには 2 つのエントリが含まれており、「Hello」は 2 にマッピングされ、「World」は 1 にマッピングされています。は、入力リスト内の各単語の出現数を表します。
特に同時実行が安全なシナリオでは、効率を向上させるために groupingByConcurrent を使用することもできることに注意してください。
以上がJava ストリームを使用してリスト内の文字列の出現をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。