Collections.sort(orderedStudents, new Comparator<Student>() {
public int compare(Student s1, Student s2) {
return s2.getAggregate().compareTo(s1.getAggregate());
}
});
这是我使用的方法。
答案 0 :(得分:1)
问题是getAggregate
方法:
public Double getAggregate(){
double d = 0;
double aggregatescore = d/marks.size();
return aggregatescore;
}
由于d设置为零,此方法将始终返回0,因此Collections.sort(...)
方法将不执行任何操作
答案 1 :(得分:0)
您编写的代码会写入文件,对数据进行排序,丢弃数据。如果希望结果显示在文件中,则必须在写入前进行排序。
更像这样:
Collections.sort(orderedStudents, new Comparator<Student>() {
public int compare(Student s1, Student s2) {
return s2.getAggregate().compareTo(s1.getAggregate());
}
});
// Now we can do writing.
writer = new PrintWriter(new FileOutputStream(new File("RankedList.txt")));
for (Student s: orderedStudents) {
s.writeToPW(writer);
}
writer.close();
如果订单似乎在降序而不是在比较函数中升序交换s1和s2。