Comparable接口给对象提供了比较的能力,即对象实现了Comparable
,它就可以向自然数一种,进行比较和排序了,而在这个接口里有个方法compareTo
,那么这个方法里,返回-1,0,1时,如何理解它对接的排序关系呢,下面看个例子:
@Override
public int compareTo(Student o) {
if (this.score > o.score)
return -1;
else if (this.score < o.score)
return 1;
else {
if (this.age < o.age)
return -1;
else if (this.age > o.age)
return 1;
else
return 0;
}
}
上面是一个Student
类型的比较器,下面说一下它的作用
- 比较score字段,大的排在前面
- 如果score相等,就比较age,小的排在前面
- 我们可以这样记它,在数轴上,-1,0,1总是这样出现的,所以,你让哪种条件返回-1,它就排到前面。