一个用于计算Java中字符串[]中字符串出现次数的行程序?

一个用于计算Java中字符串[]中字符串出现次数的行程序?,java,arrays,Java,Arrays,我有一个字符串数组: String[] myArray = {"A", "B", "B", "C"}; 是否有一种快速的方法来计算该数组中字符串的出现次数?是的,我知道我可以迭代并自己计算: int count = 0; String whatToFind = "B"; for (String s : myArray) { if (s.equals(whatToFind)) { ++count; } } 但我想知道这是否有一个实用函数。我在数组或数组直到中找不

我有一个
字符串数组

String[] myArray = {"A", "B", "B", "C"};
是否有一种快速的方法来计算该数组中字符串的出现次数?是的,我知道我可以迭代并自己计算:

int count = 0;
String whatToFind = "B";
for (String s : myArray) {
    if (s.equals(whatToFind)) {
        ++count;
    }
}
但我想知道这是否有一个实用函数。我在
数组
数组直到
中找不到任何内容。是否可以使用一个衬里进行此操作?

您可以使用:


使用Java 8,您还可以编写:

long count = Arrays.stream(myArray).filter(s -> "B".equals(s)).count();
或使用方法参考:

long count = Arrays.stream(myArray).filter("B"::equals).count();
您还可以尝试使用包含大量有用实用程序的。使用以下代码,您可以通过以下方式计算频率:

publicstaticvoidmain(最终字符串[]args){
字符串[]myArray={“A”、“B”、“B”、“C”};
Multiset-wordsMultiset=HashMultiset.create();
addAll(新的ArrayList(Arrays.asList(myArray));
int counts=wordsMultiset.count(“B”);
系统输出打印项次(计数);
}

虽然我知道您正在寻找一个单一的班轮,但Guava有更多的UTIL,这是常规java UTIL无法实现的。

Neat!我不知道那个+1@assylias好答案需要记住这一点one@RohitJain这是一个品味的问题,我想-添加了一行的版本为您!您可以使用以下命令将其设置为一行:
int count=HashMultiset.create(Arrays.asList(myArray)).count(“B”);-)可能重复的
long count = Arrays.stream(myArray).filter(s -> "B".equals(s)).count();
long count = Arrays.stream(myArray).filter("B"::equals).count();
public static void main(final String[] args) {
        String[] myArray = {"A", "B", "B", "C"};
        Multiset<String> wordsMultiset = HashMultiset.create();
        wordsMultiset.addAll(new ArrayList<String>(Arrays.asList(myArray)));
        int counts=wordsMultiset.count("B");
        System.out.println(counts);
    }