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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵江锋 黑马帝   /  2011-9-28 16:33  /  4375 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>()
TreeMap能根据value来排序吗?

4 个回复

倒序浏览
黑马网友  发表于 2011-9-28 16:43:16
沙发
TreeMap集合本身是按照key来进行排序的,如果你真的要想安装value进行排序的话,可以让value的值实现Comparable接口,这样就具备了比较性。
回复 使用道具 举报
黑马网友  发表于 2011-9-28 16:46:24
藤椅

回复 楼主 的帖子

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。
TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。
一般情况下,我们用的最多的是HashMap,HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap 是最好的选择。
TreeMap取出来的是排序后的键值对。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。
回复 使用道具 举报
黑马网友  发表于 2011-9-28 16:49:09
板凳
这个我也研究过,不过查了些代码发现,是把TreeMap对象的entrySet()做成List,然后用Collections类的sort方法排序的,而且要用带比较器参数的那个sort,并且比较器要重写compare方法,实现value的比较

评分

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

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 01:27:55
报纸
试了下确实是这样[quote] 原帖由 [i]邢勇[/i] 于 2011-09-28 16:49 发表 [url=http://bbs.itheima.com/redirect.jsp?goto=findpost&pid=11429&ptid=1822][img]http://bbs.itheima.com/images/common/back.gif[/img][/url]这个我也研究过,不过查了些代码发现,是把TreeMap对象的entrySet()做成List,然后用Collections类的sort方法排序的,而且要用带比较器参数的那个sort,并且比较器要重写compare方法,实现value的比较 [/quote]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马