List<Map>如何根据Map的特定key对应的value对List排序?

public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Map<String, Long>> lists = new ArrayList<Map<String, Long>>();
        
        Map<String,Long> map1 = new HashMap<String,Long>();
        map1.put("passTime",5L);
        Map<String,Long> map2 = new HashMap<String,Long>();
        map2.put("passTime",2L);
        Map<String,Long> map3 = new HashMap<String,Long>();
        map3.put("passTime",3L);
        lists.add(map1);
        lists.add(map2);
        lists.add(map3);
        
        
        
        Collections.sort(lists, new Comparator<Map<String, Long>>() {

             public int compare(Map<String, Long> o1, Map<String, Long> o2) {
                 if(o1.get("passTime")==o2.get("passTime")) {
                   return 0;
                 }
                 if(o1.get("passTime")>o2.get("passTime")) {
                   return 1;
                 }else{
                      return -2;
                 }
               }
        });
        
        System.out.println(lists.toString());
      }

运行结果,可以看出排序了

[{passTime=2}, {passTime=3}, {passTime=5}]
原文地址:https://www.cnblogs.com/qds1401744017/p/13395703.html