该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比较this来other,而compare相比较t1于t2在所有关于不关心this。
除了这种差异之外,这两种方法具有相似的要求。具体来说(对于 compareTo),将此对象与指定的对象进行比较以进行排序。当此对象小于、等于或大于指定对象时,返回一个负整数、零或正整数。因此,对于比较a和b:
如果a < b,并且应该返回一个负整数,并且应该返回一个正整数a.compareTo(b)compare(a,b)b.compareTo(a)compare(b,a)
如果a > b, and应该返回一个正整数, and应该返回一个负整数a.compareTo(b)compare(a,b)b.compareTo(a)compare(b,a)
如果a等于b比较,则所有比较都应返回0。