黑马程序员技术交流社区

标题: Comparable 和 Comparator 接口的区别是什么啊? 一直很糊涂 [打印本页]

作者: Be_myself    时间: 2014-7-28 17:09
标题: Comparable 和 Comparator 接口的区别是什么啊? 一直很糊涂
Comparable   和  Comparator 接口的区别是什么啊? 一直很糊涂


作者: star5603    时间: 2014-7-28 18:20
你要让对象具有比较性,比如你自定义Person具有比较性,那就实现Comparable。
如果你的对象没有比较性,那就自定义一个比较器(也是自定义类)去实现Comparator。
作者: ☆枫の云    时间: 2014-7-28 19:04
TreeSet:可以对set集合中的元素进行排序。
                           底层数据结构是二叉树。
                           保证元素唯一性的依据。
                           compareTo方法返回零(return 0)。

                           TreeSet排序的第一种方式:让元素自身具备比较性。
                           元素需要实现Comparable接口,覆盖compareTo方法。
                           这种方式也称为元素的自然顺序,或者叫默认顺序。

                           TreeSet的第二种排序方式。
                           当元素自身不具备比较性时,或者具备的比较性不是所需要的。
                           这时就需要让集合自身具备比较性,需要传入一个实现了comparator接口的比较器。
                           在集合初始化时,就有了比较方式。
作者: yuli2039    时间: 2014-7-28 19:08
定义的类实现Comparable,复写compareTo方法后,该类就具有了比较性,在使用二叉树结构的集合时,才能够排序!而当类自身的比较方式不适用,我们需要建立新的比较器,用Comparator来实现,复写compare方法,主要就是这样。
作者: baiiiu    时间: 2014-7-28 19:21
comparable自然排序,貌似是根据哈希值来进行自然排序,comparator是自定义排序,实现该接口可以自定义一个比较器。
作者: 韩天雷    时间: 2014-7-28 19:34
throw 和 throws的区别




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