您的位置:首页 > 产品设计 > UI/UE

java按照map的value排序

2015-09-02 15:30 381 查看


java按照map的value排序

分类: java2012-08-26
20:37 4843人阅读 评论(0) 收藏 举报

javaintegeriteratorexceptionapplication算法

java的TreeMap可以排序,只可惜是按照key来排序的,或者重写其他Map的排序算法也都是按照key来排序的,下面贴出来一个按照value排序的算法:

[java] view
plaincopy

public class SortMap {

public static void main(String[] args) throws Exception {

// TODO code application logic here

Map<String, Integer> myMap = new LinkedHashMap();

myMap.put("1", 1);

myMap.put("2", 4);

myMap.put("3", 3);

myMap.put("4", 9);

myMap.put("5", 6);

myMap.put("6", 2);

printMap(myMap);

myMap = sortMap(myMap);

printMap(myMap);

}

private static void printMap(Map map){

System.out.println("===================mapStart==================");

Iterator it = map.entrySet().iterator();

while(it.hasNext()){

Map.Entry entry = (Map.Entry) it.next();

System.out.println(entry.getKey() + ":" + entry.getValue());

}

System.out.println("===================mapEnd==================");

}

public static Map sortMap(Map oldMap) {

ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(oldMap.entrySet());

Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {

@Override

public int compare(Entry<java.lang.String, Integer> arg0,

Entry<java.lang.String, Integer> arg1) {

return arg0.getValue() - arg1.getValue();

}

});

Map newMap = new LinkedHashMap();

for (int i = 0; i < list.size(); i++) {

newMap.put(list.get(i).getKey(), list.get(i).getValue());

}

return newMap;

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: