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<Map<String, Object>>排序
public static void main(String[] args) {
        List<Map<String, Object>> mapList = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        Map<String, Object> map1 = new HashMap<>();
        Map<String, Object> map2 = new HashMap<>();
        Map<String, Object> 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<Map<String, Object>>() {
            @Override
            public int compare(Map<String, Object> o1, Map<String, Object> 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<String, Object> maps : mapList) {
            System.out.println(maps);
        }
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM