日期:2014-05-20  浏览次数:20767 次

java map 数值排序问题
HashMap map=new HashMap();
map.put("11","11");
map.put("100","100");
map.put("130","130");
map.put("30","30");
map.put("50","50");
正常的值排序应该是11<30<50<100<130


但通过以下代码获取最大值和最小值却得不到我想要的结果??????
Collection c=map.values();
Object[] obj=c.toArray();
Arrays.Sort(obj);
return obj[0];
返回最小值却是100


Collection c=map.values();
Object[] obj=c.toArray();
Arrays.Sort(obj);
return obj[map-1];
返回最大值却是50


还有就是要考虑有负数的情况
不知大家是否有解决的方法????????

------解决方案--------------------
这是字符串排序,当然是那个结果了
------解决方案--------------------
http://www.cnblogs.com/lovebread/archive/2009/11/23/1609121.html