两种比较器的区别:
java.lang.Comparable支持的是一种内比较,何为内比较:即是外对象和当前对象this的比较
this < obj ---- 返回负数
this = obj ---- 返回 0
this > obj ---- 返回正数
public int compareTo(T o);
java.util.Comparator支持的是一种外比较,何为外比较,即是支持两个外对象的比较,不支持和当前对象比较
o1 < o2 ---- 返回负数
o1 = o2 ---- 返回 0
o1 > o2 ---- 返回正数
int compare(T o1, T o2);//一般结合集合sort(List<T> list, Comparator<? super T>) c)进行排序