的implimention问题基本上,我有2类。其中一个具有私有成员ArrayList(来自其他类的对象),并且列表中的每个对象都有一个私有字段点。我有一个方法遍历列表并获得所有点的总和。所以我只想比较list1> list2的总和点数。但我没能做到这一点 - 我的compareTo()返回始终为0与的compareTo()方法
这里就是一个简短的代码示例。
public class StudentsGroup implements IFile, Comparable {
private List<Student> studentsList = new ArrayList<Student>();
public int compareTo(Object o) {
if(StudentsGroup.getTotalPoints(studentsList) < ((StudentsGroup)o).getTotalPoints(studentsList))
return 1;
else if(StudentsGroup.getTotalPoints(studentsList) > ((StudentsGroup)o).getTotalPoints(studentsList))
return -1;
else
return 0;
}
public static int getTotalPoints(List<Student> studentsList1) {
int totalPoints = 0;
for(Student o : studentsList1) {
totalPoints += o.getStudentPoints();
}
return totalPoints;
}
}
的方法
你dedugged看你比较什么?你是否真的在studentsList中有条目? – Stultuske
@Stultuske,是的,我喜欢。我从.txt文件的构造函数中初始化它,并在列表中添加学生类的对象。我说,实际的方法是工作,当我打印出来的totalPoints,但问题是,list1.compareTo(列表2)总是返回0,仿佛列表总是由点相等,他们不是。 – meitriksx