JAVA 集合中的对象根据对象的某个属性值降序或者升序排序


list排序

需要使用JDK1.8及以上

方式一:
升序
list.sort((x, y) -> Integer.compare(x.getCusBuyCount() + x.getCusRentCount(), y.getCusBuyCount() + y.getCusRentCount()));
降序
list.sort((y, x) -> Integer.compare(x.getCusBuyCount() + x.getCusRentCount(), y.getCusBuyCount() + y.getCusRentCount()));

方式二:
升序:
list.sort(Comparator.comparing(BusinessLookReportVo::getCusBuyCount));
降序
list.sort(Comparator.comparing(BusinessLookReportVo::getCusBuyCount).reversed());
List>排序
public static void main(String[] args) {
        List> mapList = new ArrayList<>();
        Map map = new HashMap<>();
        Map map1 = new HashMap<>();
        Map map2 = new HashMap<>();
        Map map3 = new HashMap<>();
        map.put("abc",12);
        mapList.add(map);
        map1.put("abc",20);
        mapList.add(map1);
        map2.put("abc",17);
        mapList.add(map2);
        map3.put("abc",25);
        mapList.add(map3);
        Collections.sort(mapList, new Comparator>() {
            @Override
            public int compare(Map o1, Map o2) {
                Integer name1 = Integer.valueOf(o1.get("abc").toString()) ;//name1是从你list里面拿出来的一个
                Integer name2 = Integer.valueOf(o2.get("abc").toString()) ; //name1是从你list里面拿出来的第二个name
                return name1.compareTo(name2);/*正序*/
//                return name2.compareTo(name1);/*倒序*/
            }
        });

        for (Map maps : mapList) {
            System.out.println(maps);
        }
    }