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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘源 于 2012-7-15 00:31 编辑

毕老师总结了,TreeSet的二种排序方式:一种是让元素实现Comparable接口,覆盖compareTo方法。
                                                       第二种是定义一个类实现Comparator接口,覆盖compare方法。让后传到TreeSet的对象中。
       -----这里我就想问了,这个是为什么了啊,是为了复写TreeSet里面的compare方法吗,但TreeSet里面没有啊。这里面是什么关系啊。Comparable和Comparator这2个接口还有特殊关系吗,为什么是已Comparator接口的比较器为主啊,难度Comparator也向TreeSet里面传了东西吗,但是我们不知道。
虽然方法记住了,结论也记住了,源码也看了一眼(虽然看不懂)。但也有点想知道啊他们之间的关系,希望高手们能解答下,最好把他们相关的源码接下了分析哈。。。有劳各位大神了。:D

3 个回复

倒序浏览
难度有点大{:soso_e127:}我都有出动度娘的冲动了
回复 使用道具 举报
难度大,就算了。我也就是想找个明白人,研究下,哈哈,必须我 感觉这个问题还是很有研究价值的,毕竟以后在去用的时候就不会考虑这么多了。拿来用就行了,
希望和我一样的人先关注这个帖子。这也是一种帮助。
回复 使用道具 举报
TreeSet ,底层 数据存储是 二叉树结果。

这种结果,是有序的存储。

那么,存储的元素必须是有可比较性的。


所以要弄Comparable或Comparator。


而Comparator的方式比Comparable更灵活,可以实现在用TreeSet时,再来决定 元素以什么方式来排序。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马