黑马程序员技术交流社区

标题: comparator和Comparable的细节 [打印本页]

作者: 王月    时间: 2012-6-6 16:44
标题: comparator和Comparable的细节
本帖最后由 王月 于 2012-6-26 16:26 编辑

TreeSet集合存储自定义对象的时候,需要复写Comparable中的CompareTo方法。查API时又看到个comparator,这两个接口到底有什么区别,什么时候该用哪个啊
作者: 张少威    时间: 2012-6-6 16:54
1. Comparable:此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。
实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射中的键或有序集合中的元素,无需指定比较器。
2. Comparator:强行对某个对象 collection 进行整体排序 的比较函数。可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2