黑马程序员: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、需要排序的集合