ホームページ  >  記事  >  Java  >  Java を使用して文字列内の文字の出現頻度を効率的にカウントするにはどうすればよいですか?

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-02 12:34:30915ブラウズ

How to Efficiently Count Character Frequencies in a String Using Java?

文字列内の文字の頻度

文字列内の各文字の頻度を決定することは、一般的なプログラミング タスクです。これに関連して、Java マップとマルチセットのアプローチを含むソリューションの概要が説明されています。

Java マップのアプローチ

各文字をキーとして、そのカウントを次のように使用してマップを作成するには値を指定するには、次の手順を使用できます。

  1. 空の HashMap オブジェクトを初期化します。
  2. 文字列を 1 文字ずつ繰り返します。
  3. 次のことを確認します。現在の文字はすでにマップ内のキーです。

    • はいの場合、既存の値を 1 ずつ増分します。
    • いいえの場合、値 1 のキーとして文字を追加します。 .

例:

<code class="java">Map<Character, Integer> map = new HashMap<>();
String s = "aasjjikkk";
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    Integer val = map.get(c);
    if (val != null) {
        map.put(c, val + 1);
    } else {
        map.put(c, 1);
    }
}

マルチセット アプローチ

あるいは、 Guava Multiset 実装を利用すると、文字の出現を効率的にカウントできます。マルチセットを使用すると、要素の複数のインスタンスを保存し、その数を自動的に追跡できます。

例:

<code class="java">Multiset<Character> multiset = HashMultiset.create();
String s = "aasjjikkk";
for (char c : s.toCharArray()) {
    multiset.add(c);
}</code>

マルチセット オブジェクトには、値として文字数が含まれます。

どちらのアプローチでも、文字列内の各文字の頻度を効果的に判断できるため、特定の要件に応じて柔軟性とパフォーマンスの最適化を実現できます。

以上がJava を使用して文字列内の文字の出現頻度を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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