public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}
compare 強制實現總序關係compare(e1,e2)==0 與 e1.equals(e2) 布爾值相等,稱「與等號一致」TreeSet/TreeMap 會違背 Set/Map 約定(如兩個 equals 為 true 的對象被視為不同)Serializable 以支援有序集合序列化{(x,y) | c.compare(x,y) <= 0}{(x,y) | c.compare(x,y) == 0}{(x,y) | x.equals(y)}sgn(compare(x,y)) == -sgn(compare(y,x))compare(x,y)>0 && compare(y,z)>0 => compare(x,z)>0compare(x,y)==0 => sgn(compare(x,z)) == sgn(compare(y,z))Comparable, Arrays.sort, TreeMap, TreeSet, SortedMap, SortedSet, Serializable