java Map 自定义排序(高手来)

我现在又这样一个map的方法publicMapgetMap(){Mapsearchmap=newHashMap();searchmap.put("mingcheng","... 我现在又这样一个map的方法
public Map getMap()
{
Map searchmap = new HashMap();

searchmap.put("mingcheng", "实验室名称");
searchmap.put("fuzeren", "负责人");
return searchmap;
}

问:我要怎么才能让他倒序排序输出(也就是先输出“mingcheng”)
展开
 我来答
百度网友2cf8e0b
2010-01-20 · TA获得超过577个赞
知道小有建树答主
回答量:531
采纳率:0%
帮助的人:484万
展开全部
HashMap是不保证顺序的,要有顺序,要用LinkedHashMap。这是按照插入的顺序排列的。

api:Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注意,如果在映射中重新插入 键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键 k 重新插入到映射 m 中。)

此实现可以让客户避免未指定的、由 HashMap(及 Hashtable)所提供的通常为杂乱无章的排序工作,同时无需增加与 TreeMap 相关的成本。使用它可以生成一个与原来顺序相同的映射副本,而与原映射的实现无关:

void foo(Map m) {
Map copy = new LinkedHashMap(m);
...
}
如果模块通过输入得到一个映射,复制这个映射,然后返回由此副本确定其顺序的结果,这种情况下这项技术特别有用。(客户通常期望返回的内容与其出现的顺序相同。)
业智鑫7C
2010-01-20 · TA获得超过338个赞
知道答主
回答量:195
采纳率:0%
帮助的人:0
展开全部
假设你的方法在Test类中,以下代码就是倒序输出:
Test t = new Test();
Map m = t.getMap();
Set s = m.keySet();
Iterator i = s.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
exboylfs
2010-01-20 · TA获得超过331个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:226万
展开全部
继承一个实在的Map类
重写hashCode() 方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FourQueue
2010-01-20 · TA获得超过1297个赞
知道小有建树答主
回答量:1505
采纳率:0%
帮助的人:807万
展开全部
从searchMap中都取出来,放入一个treeMap中,这个treeMap在new的时候需要传一个comperator,自己爱怎么比都行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-20
展开全部
用LinkedHashmap 带顺序的 迭代取出时也是那个顺序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式