java8的新特性,Collections.sort(排序的List集合)的使用,对list封装Map里面的某个值进行排序

--------------------------对简单list的排序----------------------------------
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
Collections.sort(list)

 


排序前是:
  1
  2
  3
  3

排序后:
  4
  3
  2
  1
------------------------------------------------------------------

----------------------------对list封装Map里面的某个值进行排序-------------------------------------
List<Map<String,Object>> mapList = new ArrayList<Map<String,Object>>();

Collections.sort(mapList,new Comparator<Map<String,Object>>() {
            //降序排序
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                double s = Double.parseDouble(o1.get("dist").toString());  //由于从map里面取出来的值为Object类型,无法直接转换为Integer类型,需要转换为double
                double d = Double.parseDouble(o2.get("dist").toString());
                Double D1 = new Double(s); //由于double类型无法直接转换为Integer类型,需要用封装类先封装double
                Double D2 = new Double(d);
                Integer s1 = D1.intValue();  //使用Double的intValue方法转换为Integer类型
                Integer s2 = D2.intValue();
                //使用Entry类中的值来比较大小
                return s1.compareTo(s2);  //s1在前面是升序,s1在后面是降序
//              //使用Entry类中的键来比较大小
//                return o2.getKey().compareTo(o1.getKey());
            }
        });

 



才疏学浅,总结得不好,希望能够帮上需要的人。
posted @ 2019-03-08 17:27  陈程序员  阅读(3667)  评论(0编辑  收藏  举报