黑马程序员:Java培训、Android培训、iOS培训、.Net培训
一、Comparable接口
1、public interface Comparable{
public int compareTo(Object other);
}
2、当本对象小于、等于或大于other对象时,相应返回一个小于、等于或大于0的值。
3、若对象不可比较,抛出ClassCastException
4、compareTo()定义的顺序是类的自然顺序,即此排序对类的对象来说是最自然的。
5、equals()定义一种自然相等关系,两个对象相等,返回ture。
6、许多类:String、Date、java.io.Fil、及包装类都实现该接口。
二、Comparator接口
1、public interface Comparator<T>{
public int compare(T o1, To2);
Boolean equals(Object obj);
}
2、没有实现Comparable接口的类,或实现Comparable接口的类不想使用compareTo()进行比较,则可以使用Comparator接口去进行比较(我们需要实现该接口),而在
compare()定义的顺序则称为比较器顺序。
3、用于对集合的整体排序。强行对某些collection对象的元素进行整体排序,例如:TreeMap、TreeSet、SortedMap、SortedSet,都可以向这些集合对象指定一个比较器。
三、何处需要比较器
1、需要比较的类,相同类对象间使用Comparable并且由该类实现,而不同类间或整体排序使用Comparator。
2、需要排序的集合