本帖最后由 王一勇 于 2014-7-16 00:41 编辑
如下代码:通过匿名内部类的方式重写了compare方法,想问的是为什么在Comare中定义了一个int num,对num作减运算 并返回num就能对集合排序了?还在神乎中.......求解。
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num = s2.getSum() - s1.getSum();//s1中数学,语文,英语成绩之和高的排前面
int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;//若三项成绩和相等,语文成绩高的排前面
int num3 = num2 == 0 ? s1.getMath() - s2.getMath() : num2;//若语文成绩还相同,再比较数学成绩高的排前面
return num3;
}
});
|
|