JAVA:一个MAP排序的问题

privateMap<String,Integer>mapSortByKey(Map<String,Integer>unsort_map){Map<String,Inte... private Map<String, Integer> mapSortByKey(Map<String, Integer> unsort_map) {
Map<String, Integer> result = new HashMap<String, Integer>();

Object[] unsort_key = unsort_map.keySet().toArray();
Arrays.sort(unsort_key);

for (int i = 0; i < unsort_key.length; i++) {
result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i]));
}

return result;
}

我的代码中有这么一个程序,主要是将MAP按KEY排序后返回,可是在最后的result.put的时候,又不知道怎么回事,失去了排序功能,大家帮我看看怎么回事!感谢。
展开
 我来答
nirenfu
2009-11-18 · TA获得超过1991个赞
知道小有建树答主
回答量:368
采纳率:0%
帮助的人:624万
展开全部
HashMap里面的元素是无序的,要进行排序的话只能是用TreeMap和SortedMap,例如:
public static void main(String[] args) throws Exception{
Map<String, Integer> map=new TreeMap<String, Integer>();
map.put("1", 1);
map.put("9", 9);
map.put("4", 4);
map.put("2", 2);
map.put("8", 8);
map=mapSortByKey(map);
System.out.println(map.toString());
}
private static SortedMap<String, Integer> mapSortByKey(Map<String, Integer> unsort_map) {
TreeMap<String, Integer> result = new TreeMap<String, Integer>();

Object[] unsort_key = unsort_map.keySet().toArray();
Arrays.sort(unsort_key);

for (int i = 0; i < unsort_key.length; i++) {
result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i]));
}
return result.tailMap(result.firstKey());
}
万恶资本主义好
2009-11-18 · TA获得超过5827个赞
知道大有可为答主
回答量:5974
采纳率:66%
帮助的人:2731万
展开全部
楼上正解。
你还可以尝试通过使用集合来排序。
connection静态类的sort方法,它的参数是个list。返回值是排序后的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式