黑马程序员技术交流社区

标题: compare与compareTo [打印本页]

作者: gaoming971366    时间: 2015-7-19 11:37
标题: compare与compareTo
今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲解一下,说的简单点,看了一下子就明白了,谢谢 啊
作者: 张红(新)    时间: 2015-7-19 14:18
让对象自身具备比较性的话,就要对象(类)实现comparable接口并覆盖compareTo()方法,这是对元素的自然顺序进行比较。
当元素自身不具备比较性或具备的比较性不是所需要的,就让集合本身具备比较性,通过定义比较器的方式,将比较器对象作为参数传递给TreeSet集合即可。定义比较器方法:定义一个类,这个类实现Comparator接口同时覆盖接口中的Compare()方法即可。
作者: aurora_bessie    时间: 2015-7-19 14:46
今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲 都是用来实现集合中元素的比较,排序。1.采用Comparable接口覆盖compareTo这个方法是让元素自身具备比较性,即在元素对象建立时就具备了比较性。2.而当元素自身不具备比较性或者具备的比较性不是需求的,就可以另采用让集合初始化建立时就具备比较性,即自定义个类继承Comparator比较器,在类中复写compare(Object o1,Objiect o2)方法,当集合建立时传入这个接口的子类对象来实现排序。
------------------------------两者最大的差异是一个让元素具备需要的比较性,一个让集合(传入一个封装好的比较器对象)具备需要的比较性(判断元素的差异)。
作者: gaoming971366    时间: 2015-7-19 16:16
aurora_bessie 发表于 2015-7-19 14:46
今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲 都是用 ...

受教了谢谢指点
作者: gaoming971366    时间: 2015-7-19 16:17
张红(新) 发表于 2015-7-19 14:18
让对象自身具备比较性的话,就要对象(类)实现comparable接口并覆盖compareTo()方法,这是对元素的自然顺 ...

谢谢,学习了
作者: wengjialiang    时间: 2015-7-19 18:21
先标记一下,以后用
作者: 王文辉    时间: 2015-7-19 18:33
楼上都是正解
作者: xclyijin    时间: 2015-7-19 22:07
受教了,在学习的时候也有些疑惑,现在看完这个帖子就明白了。




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