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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM张健 中级黑马   /  2013-3-21 09:46  /  1848 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 HM张健 于 2013-3-21 19:34 编辑

求讲解一下TreeSet的自然排序和定制排序啊 最好精简点啊

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

5 个回复

倒序浏览
    这个跟现实社会是一样的,模拟一个场景,作为一个人,人本身具备的关于比较的特性就是自然顺序,比如你有同他人比较年龄,比较身高,比较存款的功能,这些都是对象自身具备的,别人没办法约束你,但当你进入一个特定的环境的时候,由于这个环境是别人的,别人就有可能按照这个环境定义的方式进行排序,一般情况在银行下存款越多等级越高,但是这个银行就很另类,就是存款越少等级越高,没办法,在人家地盘就得听人家的规则,这个规则(定制排序规则)就是银行定义的Compator实例对象。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
TreeSet的自然排序,也就是默认排序,是元素本身具有比较性。用的时候实现Comparable接口,并覆盖compareTo(Object obj)方法

定制排序,是在元素本身没有比较性,或不符合当前我们比较的需求下使用,也就是让集合自身有比较性。用的时候实现Comparator接口,并覆盖compare方法。

具体应用可参考毕大师视频,集合框架,讲的很详细。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
1、自然排序
TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然排序。
2、定制排序

TreeSet的自然排序是根据集合元素的大小,TreeSet将他们以升序排列。如果需要实现定制排序,例如降序,则可以使用Comparator接口。该接口里包含一个int compare(T o1,T o2)方法,该方法用于比较o1和o2的大小。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
记得及时处理帖子哦,继续追问,或将分类改成【已解决】~
回复 使用道具 举报
OK  谢谢上面各位啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马