前景提要
HDC调试需求开发(15万预算),能者速来!>>>
项目需求是给一个map里的值按value排序,为什么我辛辛苦苦的排序在最后却无视了我的排序,控制台效果如下:
{我们都是医科所=1, 工程技术中心标准组=2, 清华大学=5, 平台管理中心办公室=2}
--------------排序前--------------
我们都是医科所=1
工程技术中心标准组=2
清华大学=5
平台管理中心办公室=2
--------------排序后--------------
清华大学=5
{清华大学=5}
工程技术中心标准组=2
{工程技术中心标准组=2, 清华大学=5}
平台管理中心办公室=2
{工程技术中心标准组=2, 清华大学=5, 平台管理中心办公室=2}
我们都是医科所=1
{我们都是医科所=1, 工程技术中心标准组=2, 清华大学=5, 平台管理中心办公室=2}
{我们都是医科所=1, 工程技术中心标准组=2, 清华大学=5, 平台管理中心办公室=2}
最后应该是5 2 2 1但最终又回到了之前未排序的效果
附加代码如下:
//对map按照value进行排序 System.out.println(resultMap); List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>( resultMap.entrySet()); System.out.println("--------------排序前--------------"); for (int i = 0; i < infoIds.size(); i++) { String id = infoIds.get(i).toString(); System.out.println(id); } // 排序 Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return ( o2.getValue()-o1.getValue()); } }); System.out.println("--------------排序后--------------"); for (int i = 0; i < infoIds.size(); i++) { Entry<String,Integer> ent=infoIds.get(i); System.out.println(ent.getKey()+"="+ent.getValue()); newresultMap.put(ent.getKey(), ent.getValue()) ; System.out.println(newresultMap); } System.out.println(newresultMap); return newresultMap;
他凭什么无视我