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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanglfree 中级黑马   /  2013-9-24 08:50  /  1301 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄兴旺 于 2013-9-24 19:58 编辑

第二种方式:当元素自身不具备比较性,或者具备的比较性不是所需的,这时需要让集合自身具备比较性。

当元素自身不具备比较性时,用第二种方式
那么用第二种方式的时候,到底还需不需要元素自身具备比较性?还是只需要让集合自身具备比较性即可?

从编程的结果来看,元素还是需要实现Comparable接口的,但是还是需要来确认一下。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
先让元素自身带有比较性,然后根据需求,传入比较器,对元素进行重新比较排序。
回复 使用道具 举报
那.这么跟你说啦.
每个集合都有自己的比较方式,如果传入的是一个String或者Integer当然很方便就能看出来他们各自的比较方式.
但是如果是个对象,那么就不好比较了.你说的需要现Comparable接口其实是给集合用的,集合会调用对象里被复写的comparto方法.来看返回的值是大还是小.


(有误请指点....)

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
当然需要。这是万全的准备,你的对象具备比较性,算是默认排序,当你需要它按照其他规律排序的时候再传个个比较器进去就行了。
回复 使用道具 举报
当TreeSet集合中,当元素自身不具备比较性,或者具备的比较性不是所需的,这时需要让集合自身具备比较性。

当元素自身具备了比较性,并且集合自身也具备了比较性,这时候就以比较器的比较性为准,此时元素自身可以不实现Comparable接口。
当元素自身不具备比较性,此时集合自身就必须实现Comparator接口。也就是两种比较方式至少需要有一种,如果两种都存在,就以集合自身比较器为准。

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 赞一个!

查看全部评分

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