黑马程序员技术交流社区

标题: Comparable,Comparator的使用差别还是没搞明白 [打印本页]

作者: yangqing    时间: 2013-7-20 15:19
标题: Comparable,Comparator的使用差别还是没搞明白
本帖最后由 杨兴庭 于 2013-7-21 19:11 编辑

如题 Comparable,Comparator 的用法差别在哪啊。。。
作者: wedge    时间: 2013-7-20 15:25
Comparable接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。
Comparator比较函数强行对某些对象 collection 进行整体排序。可以将 Comparator 传递给 sort 方法(如 Collections.sort),从而允许在排序顺序上实现精确控制。还可以使用 Comparator 来控制某些数据结构(如 TreeSet 或 TreeMap)的顺序。
作者: 薛淑凯    时间: 2013-7-20 15:57
呃。。感情楼上复制的api文档啊。
实现Comparable接口后,该类对象就具备了比较性,通过复写的compareTo方法来实现比较排序。这个方法定义在类里头,借用毕老师的那句话,当需要存到TreeSet中的元素不具备比较性,也就是本身没有实现Comparable接口,或者本身自带的比较性不是我们想要的。这时候就需要单独定义一个比较器,通过实现Comparator接口来创建,把这个比较器当作参数传递给集合,让集合具备比较性,这时候再往集合里存元素的时候就会自动调用比较器的比较方式。

作者: 杨兴庭    时间: 2013-7-21 12:36
Comparable是接口。。自己写的对象要具备比较性就要实现Comparable接口的。。。Comparator是Comparable接口内的方法,。。。。




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