黑马程序员技术交流社区

标题: Comparable和Comparator区别。 [打印本页]

作者: cyc523633157    时间: 2014-8-2 15:42
标题: Comparable和Comparator区别。
本帖最后由 cyc523633157 于 2014-8-2 22:01 编辑

这两个比较器搞不明白。

作者: 200米王朝    时间: 2014-8-2 17:12
前者是自已完成比较,后者是外部程序实现比较。
作者: 怀念黑海岸    时间: 2014-8-2 18:30
当你往一个集合中加入元素时,这个元素本身不具备比较性,那么你怎么才能在你对这个集合进行遍历时获得你想要的查询结果呢?
       此时,两种办法,第一种,让你的这个元素所对应的类实现comparable接口,重写compareTo方法,按照你的方法去确定比较元素的规则。
       第二种,定义一个比较器,实现comparator接口,同时也重写compareTo方法,定义你自己的比较规则,然后在你定义集合对象的时候,使用集合的带参构造函数,将这个构造器传入这个集合,这个集合中的元素就会按照你定义的比较器进行比较了。
       这就是两个接口的区别。作用其实都是一样,是元素具有比较性。
作者: cyc523633157    时间: 2014-8-2 20:41
怀念黑海岸 发表于 2014-8-2 18:30
当你往一个集合中加入元素时,这个元素本身不具备比较性,那么你怎么才能在你对这个集合进行遍历时获得你想 ...

真棒、、、、、、、、、、、、、、、、
作者: liqi    时间: 2014-8-2 20:51
comparable是在定义类的时候 实现这个接口,即这个类具有了比较性。而后面的comparator纯粹是比较器。
作者: 怀念黑海岸    时间: 2014-8-2 22:35
cyc523633157 发表于 2014-8-2 20:41
真棒、、、、、、、、、、、、、、、、

可惜我写了那么多哦,连个沙发都没抢到,只抢到个地板。
作者: Moriarty    时间: 2014-8-2 22:39
这俩一个是提供可比性,一个是创建一个比较器。




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