天天看点

java的比较器_java两种比较器总结

【Comparable和Comparator源码】

java.lang.Comparablepublic interface Comparable{public intcomparaTo(T o);

}------------------------------------------------------------------java.util.Comparatorpublic interface Comparator{intcompare(T o1,T o2);booleanequals(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