日期:2014-05-20  浏览次数:20662 次

java.util.Comparator和java.lang.Comparable这两个接口有什么不同?
如题,感觉两个接口差不多,都会重写.

------解决方案--------------------
Comparable接口一般应用于实体类。实现一个默认的排序。
Comparator接口是来弥补Comparable的不足。
假设你当前实体类的默认排序不符合我的要求,而这里我又无法修改你的源码/又或者一个集合对象我可以需要N种排序Comparable接口是无法全部满足的。
那么我就选择新建一个类实现Comparator接口去排序。
------解决方案--------------------
public int compareTo(T o);
int compare(T o1, T o2);
看看这二个接口的方法就有很大不同了,前者一般是将this对象和参数对象对比,后者是将二个参数作比较对象通常是作为一个比较器使用