15

私は次の配列を持っていますString

String[] myArray = {"A", "B", "B", "C"};

その配列内の文字列の出現回数を数える簡単な方法はありますか? はい、私は自分で反復してカウントできることを知っています:

int count = 0;
String whatToFind = "B";
for (String s : myArray) {
    if (s.equals(whatToFind)) {
        ++count;
    }
}

しかし、これにユーティリティ関数があるかどうか疑問に思っていました。Arraysまたはで何も見つかりませんでしたArrayUtils。ワンライナーでこれを行うことは可能ですか?

4

2 に答える 2

74

メソッドを使用できますfrequency

List<String> list = Arrays.asList(myArray);
int count = Collections.frequency(list, "B");

または1行で:

int count = Collections.frequency(Arrays.asList(myArray), "B");

Java 8 では、次のように書くこともできます。

long count = Arrays.stream(myArray).filter(s -> "B".equals(s)).count();

またはメソッド参照を使用:

long count = Arrays.stream(myArray).filter("B"::equals).count();
于 2013-07-18T09:25:53.830 に答える