Java Collections.frequency()方法是否将输出设为零?

Java Collections.frequency()方法是否将输出设为零?,java,list,collections,char,frequency,Java,List,Collections,Char,Frequency,此代码打印值“0”: String name=“aaa”; char[]mychar=新字符[name.length()]; mychar=name.toCharArray(); 列表值=Arrays.asList(mychar); int m=Collections.frequency(值“a”); 系统输出打印项次(m); 为什么?Collections#frequency遍历列表,计算与传递给方法的参数相等的元素数 在您的示例中,列表的每个元素都是一个基本类型的数组,字符,但是您试图在列

此代码打印值“0”:

String name=“aaa”;
char[]mychar=新字符[name.length()];
mychar=name.toCharArray();
列表值=Arrays.asList(mychar);
int m=Collections.frequency(值“a”);
系统输出打印项次(m);
为什么?

Collections#frequency
遍历
列表
,计算与传递给方法的参数相等的元素数

在您的示例中,
列表
的每个元素都是一个基本类型的数组
字符
,但是您试图在
列表
中找到一个单独的
字符
,它显然不存在。

集合#频率
列表
中迭代,计算与传递给方法的参数相等的元素数


在您的示例中,
列表
的每个元素都是一个数组的基本类型,
字符
,但是您试图在
列表
中找到一个单独的
字符
,它显然不存在。

因为
数组.asList
提供了一个
列表
,不是一个
列表
。我应该怎么做才能得到正确的输出?在Java8之前,没有办法在一行中完成。使用Java 8,您可以编写
string.chars().filter(c->c=='a').count()
。因为
Arrays.asList
为您提供了一个
列表,而不是
列表
。为了获得正确的输出,我应该做什么?在Java 8之前的一行中无法做到这一点。使用Java 8,您可以编写
string.chars().filter(c->c=='a').count()
。然后我该怎么做才能获得正确的输出?您应该使用
List
,而不是将数组添加到其中,但是
char
s本身。为了获得正确的输出,我应该怎么做?您应该使用
List
,而不是将数组添加到其中,而是添加
char
s本身。
String name = "aaa";
char[] mychar = new char[name.length()];
mychar = name.toCharArray();
List<char[]> values = Arrays.asList(mychar);
int m = Collections.frequency(values, 'a'); 
System.out.println(m);