ホームページ >Java >&#&チュートリアル >Java ストリームを使用してリスト内の文字列の出現をカウントするにはどうすればよいですか?

Java ストリームを使用してリスト内の文字列の出現をカウントするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 06:39:02672ブラウズ

How Can I Count String Occurrences in a List Using Java Streams?

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 サイトの他の関連記事を参照してください。

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