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