首先,-1表示小於,1表示大於,0表示等於.Comparable是內部比較器,Comparator是外部比較器。
假設,-1表示不需要調整前後順序,1表示需要調整前後順序。
對於Comparable接口,主要函數
int compareT(T o)
Student類實現了該接口,studeant有age,score,id屬性。實現,按年齡遞增排序。
public int compareTo(Student stu) { //覆寫compareTo方法實現排序規則的應用
this.getScore() - stu.getScore();
}
理解:如果this.getScore() - stu.getScore()返回1,表示大於,表示需要調整,那麼這是個遞增排序。
要是實現,遞減排序:
public int compareTo(Student stu) {
if(this.getScore() > stu.getScore())
return -1;
else if(this.getScore() < stu.getScore() )
return 1;
else
return 0;
}
理解:this.getScore() > stu.getScore()返回-1,表示不需要調整順序,那麼這是個遞減順序。
對於Comparator接口,主要函數:
int compare(T o1,To2)
public int compare(Student stu1,Student stu2) {
stu1.getScore() - stu2.getScore();
}
同樣理解,這是遞增順序。
那麼,改爲stu2.getScore() - stu1.getScore()即可。