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

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

Barbara Streisand
リリース: 2024-11-30 17:53:16
オリジナル
460 人が閲覧しました

How to Efficiently Count Occurrences of Strings in Java Using Streams?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート