compareTo 和比較方法

Comparable<T> 介面需要一種方法:

public interface Comparable<T> {

    public int compareTo(T other);

}

Comparator<T> 介面需要一種方法:

public interface Comparator<T> {

    public int compare(T t1, T t2);

}

這兩種方法基本上是相同的,只有一個小的區別:compareTo 比較 thisother,而 compare 比較 t1t2,而不關心 this

除了這種差異,這兩種方法也有類似的要求。具體而言(對於 compareTo),將此物件與指定的物件進行比較以獲得順序。返回負整數,零或正整數,因為此物件小於,等於或大於指定物件。 因此,對於 ab 的比較:

  • 如果 a < ba.compareTo(b)compare(a,b) 應該返回一個負整數,b.compareTo(a)compare(b,a) 應該返回一個正整數
  • 如果 a > ba.compareTo(b)compare(a,b) 應該返回一個正整數,b.compareTo(a)compare(b,a) 應該返回一個負整數
  • 如果 a 等於 b 進行比較,則所有比較都應返回 0