黑马程序员技术交流社区

标题: 关于Comparable&和Comparator 这两个比较器 [打印本页]

作者: 李敬卫    时间: 2012-12-8 14:40
标题: 关于Comparable&和Comparator 这两个比较器
Comparable和Comparator  这两个比较器,怎么判断什么时候用那个?
作者: 宫明星    时间: 2012-12-8 14:42
第一种:让元素自身具有比较性。
Comparable是一个接口,里面只有一个对象,就是compareTo方法,返回的是int类型。

第二种:
可以自己创造一个容器,实现Comparator接口,覆盖compare方法。


记住:
Comparable对应的是compareTo
Comparator对应的是compare
作者: 赵保磊    时间: 2012-12-8 15:20
本帖最后由 赵保磊 于 2012-12-8 15:21 编辑

理论上来说用这两个都可以,一般情况是我们在用二叉树数据结构的集合存储自定义对象时用这两个
比如:一个自定义一个Person类,存储在TreeSet集合中(或者存储的集合类型事先不确定用哪一种),这是我们为了程序的可扩展性一般让Person类实现comparable,
并重写其compareTo()方法。而在后期我们发现用TreeSet集合存储时,Comparable自定义的比较方法不是我们所想要的,而又不想改变Person类本身是,可以重新
写一个自定义比较方法,这是可以用Comparator,并重写其compare()方法。




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