社区
Java SE
帖子详情
关于HashMap的排序
maowu
2004-03-15 11:45:50
我现在有一个HashMap,
我想根据里面的key的排序(key已经实现Comparable)
按顺序逐一取出每个Object,
有什么比较高效的方法?
...全文
98
14
打赏
收藏
关于HashMap的排序
我现在有一个HashMap, 我想根据里面的key的排序(key已经实现Comparable) 按顺序逐一取出每个Object, 有什么比较高效的方法?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maowu
2004-03-16
打赏
举报
回复
实践结果:
HashMap map = new HashMap();
map.put("1", "1");
map.put("3", "3");
map.put("2", "2");
map.put("4", "4");
Iterator iterator = map.keySet().iterator();
while(iterator.hasNext()){
Object key = iterator.next();
Object obj = map.get(key);
System.out.println(obj);
}
System.out.println("---------------------------");
Object[] key = map.keySet().toArray();
Arrays.sort(key);
for (int i = 0; i < key.length; i++) {
System.out.println(map.get(key[i]));
}
运行上面的程序后打印的结果是
3
2
4
1
---------------------------
1
2
3
4
明显,加入的在hashmap里的排序跟key对象的Comparable没有任何关系.
maowu
2004-03-16
打赏
举报
回复
虎猫,真的吗?我不知道哦.我试试看.
simonhappy
2004-03-15
打赏
举报
回复
取出Key的集合,然后调用Arrays.sort()
追求自由
2004-03-15
打赏
举报
回复
treeMap按自然顺序,如果你按它默认的构造方法构造的话。
LinkedHashMap是按你加入的顺序。
另外:
如果你要记录map加入的顺序,配合LinkedList使用。
把标识放到list里!!!
取的时候按list的顺序从
map里取~~~~
duracell
2004-03-15
打赏
举报
回复
最简单的就用
Map new_map = new TreeMap(now_map);
就已经排好序了
maowu
2004-03-15
打赏
举报
回复
稳定排序 是什么?
我看看SortedMap先.
maowu
2004-03-15
打赏
举报
回复
Map是别人传过来的,
我可以转化给set或者Collection,
但是我不知道怎么对set进行排序....
topglory
2004-03-15
打赏
举报
回复
首先你要明白自己的排序需不需要稳定排序
另外有一个SortedMap,我也没用过,你可以看看java API文档
我相信使用它会比排序更高效,它应该是插入元素时按顺序插入
wy7861
2004-03-15
打赏
举报
回复
HashMap本身并不适合排序,也就是说如果你要排序的话,最好不要用HashMap~~
如果要用,可以从HashMap中得到Collection来排序~~
yjsyjs
2004-03-15
打赏
举报
回复
自己重载数据接口的sort,用二分法
jerrygui
2004-03-15
打赏
举报
回复
up,我有同样的问题;
bingziyu
2004-03-15
打赏
举报
回复
你们说的Comparable是什么意思?
我看了好长时间也没搞清楚,听说他可以自己规定比较方法,
但是怎么用啊?
wushicnn
2004-03-15
打赏
举报
回复
实现Comparable后,在插入元素时,已经按照Comparable排序了,迭代取出元素有什么问题?
maowu
2004-03-15
打赏
举报
回复
Map mapModifyied = getMap();
Object[] key = mapModified.keySet().toArray();
Arrays.sort(key);
这样经过了两次转换:Map --> Set , Set --> Object[],
是不是很浪费?
关于
HashMap
排序
问题
问题: 1.
HashMap
有序么? 答案无序; 但是如果一个map中的key不变,输出,map是以一定的顺序输出;这里说的顺序是map自己的一套顺序;多次输出顺序是不变的。 在map新增key的时候,由于map的结构,在扩容前,key根据hashcode插入某位置。之前顺序保持不变。 增加扩容后,map中的底层实现重组内部结构,顺序打乱。 如果要用有序的ma...
关于
HashMap
排序
的一点浅见
关于
HashMap
排序
的一点浅见我们在对
hashmap
进行
排序
的时候存在一定的误解,首先在这更正下~我在遇到这个问题的时候也上网查了相关的资料,发现大家在进行
hashmap
进行
排序
的时候存在一定的了解误区。 有很多人认为把
hashmap
遍历一下,然后对其中的key和value进行
排序
,然后打印出来~ 大家想一想,这样的
hashmap
排序
根本就不是对
hashmap
进行
排序
~最
HashMap
排序
的方式
记录用过的
HashMap
排序
方式,个人学习向。
java中
hashMap
排序
前言: 首先我们要知道
HashMap
本身就是不可
排序
的,但这里我们要使
HashMap
排序
,那我们就得想在 API 中有没有这样的 Map 结构是有序的,那就需要用上Linked
HashMap
,它是 Map 结构,也是链表结构有序的,更重要的是它是
HashMap
的子类。 但凡是对集合的操作,我们应该保持一个原则就是能用 JDK 中的 API 就有 JDK ...
java的
hashmap
排序
_java 中
HashMap
排序
一、按key值
排序
假设
HashMap
存储的键-值对为(String,Integer),按key
排序
可以调用JDK函数sort(默认的按字典升序):Set keySet = map.keySet();Collections.sort(keySet);for(Iterator ite = keySet.iterator(); ite.hasNext();) {String temp = ite.nex...
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章