java Comparable和Comparator比較器

首先,-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()即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章