java按照map的value排序

来源:互联网 发布:windows 车载 编辑:程序博客网 时间:2024/05/22 06:43

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

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;      }  }

这里写图片描述

0 0
原创粉丝点击