map的排序方法有三种,这里只概述TreeMap的以value进行的排序。
public class Test { public static void main(String[] args) { Map<String ,Integer> map = new TreeMap<String ,Integer>(); //对map进行传参数 map.put("aaa", 100); map.put("bbb", 50); map.put("ccc", 10); //将map放到一个list中,以便对其遍历 List<Map.Entry<String ,Integer>> infoIds = new ArrayList<Map.Entry<String ,Integer>>(map.entrySet()); Collections.sort(infoIds,new Comparator<Map.Entry<String ,Integer>>(){ @Override //创建一个内部类 public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) { // TODO Auto-generated method stub // return(o1.getValue().compareTo(o2.getValue())); //这是从小到大排序 return (o2.getValue()-o1.getValue()); //这是从大到小排序 //其中的compareTo与-是等价的 } }); System.out.println(infoIds); } }
这是运行结果: