标签:
【Comparable和Comparator源码】
java.lang.Comparable public interface Comparable<T> { public int comparaTo(T o); } ------------------------------------------------------------------ java.util.Comparator public interface Comparator<T> { int compare(T o1,T o2); boolean equals(Object obj); }
【Comparable接口】
若一个类实现了Comparable接口,就意味着该类支持排序。假设存在实现了 Comparable接口的类的对象的List列表(或数组),则该List列表(或数组)可以通过Collections.sort(或Arrays.sort)进行排序。
【Comparator接口】
我们需要控制某个类的次序,而该类不支持排序(即没有实现Comparable接口)。那么,我们可以创建一个该类的比较器,这个比较器只需要实现Comparator。若一个类实现了Comparator接口,则它一定要实现compare(T o1,T o2)方法,但不一定要实现equals(Object obj)方法;
【两者比较】
1.Comparable是排序接口;若一个类实现了Comparable接口,就意味着“该类支持排序”;而Comparator是比较器;我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。
2.Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
标签:
原文地址:http://www.cnblogs.com/hwu2014/p/4479211.html