社区
Java SE
帖子详情
关于HashMap的排序
maowu
2004-03-15 11:45:50
我现在有一个HashMap,
我想根据里面的key的排序(key已经实现Comparable)
按顺序逐一取出每个Object,
有什么比较高效的方法?
...全文
125
14
打赏
收藏
关于HashMap的排序
我现在有一个HashMap, 我想根据里面的key的排序(key已经实现Comparable) 按顺序逐一取出每个Object, 有什么比较高效的方法?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
进行
排序
如何对
HashMap
进行
排序
在这篇文章中,我们将介绍如何对
HashMap
进行
排序
,我们将讨论如何通过键或者值对
HashMap
进行
排序
。 为了下面文章的演示,我们先构造一个
HashMap
@Data @AllArgsConstructor class Student{ private Integer id; private String name; @Override...
实现对
HashMap
的value进行
排序
问题: 如何对
HashMap
中的value值进行
排序
关键点: 1.取
HashMap
的Map.Entry,放入List 2.利用Collections.sort(List, Comparator<? extents T>)进行
排序
3.实现内部类Comparator,实现compare方法 代码: import java.util.*; public class
HashMap
Tes...
HashMap
如何按值value
排序
HashMap
如何按值value
排序
简单介绍相关组件
HashMap
ComparatorCollections.sort方法实现原理简介实现代码tips 简单介绍相关组件
HashMap
我们知道,
HashMap
是一个数组和链表组成的一种链表散列结构,存储方式是根据key的hash值来决定存储的位置,这就导致了存储后的元素不会维持插入时的顺序。 Comparator 如果我们需要控制某个类的次序并且...
java中
hashMap
排序
前言: 首先我们要知道
HashMap
本身就是不可
排序
的,但这里我们要使
HashMap
排序
,那我们就得想在 API 中有没有这样的 Map 结构是有序的,那就需要用上Linked
HashMap
,它是 Map 结构,也是链表结构有序的,更重要的是它是
HashMap
的子类。 但凡是对集合的操作,我们应该保持一个原则就是能用 JDK 中的 API 就有 JDK ...
HashMap
排序
HashMap
排序
已知一个
HashMap
<Integer,User>集合, User 有 name(String)和 age(int)属性。写一个方法实现对
HashMap
的
排序
功能,该方法接收
HashMap
<Integer,User>为形参,返回类型为
HashMap
<Integer,User>,要求对
HashMap
中的 User 的 age 顺序进行
排序
。
排序
时 key=value 键值对不得拆散。 import java.util.*; public c
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章