我知道
Collections.frequency(obj1,obj2);
给出对象 obj2 在集合 obj1 中存在的次数。 但我想问说 obj1 是一个由对象(学生)组成的集合(列表)。
学生可以有 {name,marks}
那么有没有可能的单行或两行方式让我可以找到获得相同分数的学生数量
我不想包含任何额外的库
最佳答案
Collection.Frequency
返回指定集合中等于指定对象的元素数量。它基本上等于 obj2 和 List 对象。
如果您重写 equals
方法并将逻辑设置为基于分数属性,则对象将等于或不等于。然后 Collection.Frequency
返回您想要的结果。
public class Student{
private String name;
private int score;
@Override
public boolean equals(Object obj){
if(obj == null)
return false;
else if(this==obj)
return true;
else
return this.hashCode() == ((Student)obj).hashCode();
}
@Override
public int hashCode() {
return score;
}
}
...
int freq = Collections.frequency(listOfStudent,student);
关于java - 在java中查找对象集合中的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15062269/