A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gaoming971366 中级黑马   /  2015-7-19 11:37  /  849 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲解一下,说的简单点,看了一下子就明白了,谢谢 啊

7 个回复

正序浏览
受教了,在学习的时候也有些疑惑,现在看完这个帖子就明白了。
回复 使用道具 举报
楼上都是正解
回复 使用道具 举报
先标记一下,以后用
回复 使用道具 举报
张红(新) 发表于 2015-7-19 14:18
让对象自身具备比较性的话,就要对象(类)实现comparable接口并覆盖compareTo()方法,这是对元素的自然顺 ...

谢谢,学习了
回复 使用道具 举报
aurora_bessie 发表于 2015-7-19 14:46
今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲 都是用 ...

受教了谢谢指点
回复 使用道具 举报
今天学习了集合,设计了compareable中的compareTo方法,comparator的compare,一下就晕了,求大神讲 都是用来实现集合中元素的比较,排序。1.采用Comparable接口覆盖compareTo这个方法是让元素自身具备比较性,即在元素对象建立时就具备了比较性。2.而当元素自身不具备比较性或者具备的比较性不是需求的,就可以另采用让集合初始化建立时就具备比较性,即自定义个类继承Comparator比较器,在类中复写compare(Object o1,Objiect o2)方法,当集合建立时传入这个接口的子类对象来实现排序。
------------------------------两者最大的差异是一个让元素具备需要的比较性,一个让集合(传入一个封装好的比较器对象)具备需要的比较性(判断元素的差异)。

评分

参与人数 1黑马币 +3 收起 理由
gaoming971366 + 3 很给力!

查看全部评分

回复 使用道具 举报 1 0
让对象自身具备比较性的话,就要对象(类)实现comparable接口并覆盖compareTo()方法,这是对元素的自然顺序进行比较。
当元素自身不具备比较性或具备的比较性不是所需要的,就让集合本身具备比较性,通过定义比较器的方式,将比较器对象作为参数传递给TreeSet集合即可。定义比较器方法:定义一个类,这个类实现Comparator接口同时覆盖接口中的Compare()方法即可。

评分

参与人数 1黑马币 +2 收起 理由
gaoming971366 + 2 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马