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); } }