Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据特定参数返回列表中对象出现的次数_Java_List_Loops_Iterator - Fatal编程技术网

Java 如何根据特定参数返回列表中对象出现的次数

Java 如何根据特定参数返回列表中对象出现的次数,java,list,loops,iterator,Java,List,Loops,Iterator,我有一个java对象列表,我想知道object.sour\u attribute=foo出现的次数。我确实知道Collections.Frequency(),但是这个函数要求我发送完全相同的对象,而我只想获得根据某个属性相似的对象。我有 简单地将整个列表循环并比较,但是你能用一些更简单的方法来指导我吗? 提前感谢在这种情况下,您可以使用流并过滤绿色 一个 范例 List<Integer> x = new ArrayList<>(Arrays.asList(1, 2, 3,

我有一个java对象列表,我想知道
object.sour\u attribute=foo
出现的次数。我确实知道Collections.Frequency(),但是这个函数要求我发送完全相同的对象,而我只想获得根据某个属性相似的对象。我有 简单地将整个列表循环并比较,但是你能用一些更简单的方法来指导我吗?
提前感谢

在这种情况下,您可以使用流并过滤绿色 一个

范例

List<Integer> x = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 1, 1));
long xFreq = x.stream().filter(t -> t % 2 == 0).count();

我知道我可以简单地循环整个列表并进行比较,但我想看看是否有更简单的方法。试着不要在这里重新发明轮子想要得到相似的物体你所说的相似是什么意思?我想如果一个标准符合,你最终会计数……嗯,我可能说错了,是的,不相似,但假设它是一个几何对象,我想搜索
对象。color=green
您不需要
.collect(Collectors.toList()).size()
当您只需要列表的大小时,只需调用
.count()
long xFreq = x.stream().filter(c -> c.getColor().equals("green")).count();