一、集合元素排序:
(1)集合条件排序(java8流):stream().sorted()
1
// 状态排序 orderListDTOS.stream().sorted(Comparator.comparing(OrderListDTO::getOrderStatusStr) // 评价时间 为null靠前 .thenComparing(OrderListDTO::getEvaluateTime, Comparator.nullsFirst(String::compareTo).reversed()) // 下单时间 倒序 .thenComparing(OrderListDTO::getOrderTime, Comparator.nullsFirst(String::compareTo)).reversed()) // 赋值给新集合 进行保存 .collect(Collectors.toList()).forEach(order -> { OrderListDTO orderListDTO = new OrderListDTO(); BeanUtils.copyProperties(order, orderListDTO); orders.add(orderListDTO); });
参数解释:
Comparator:比较器。
Comparator.comparing(OrderListDTO::getOrderStatusStr):按OrderListDTO对象中的orderStatusStr字段正序排序。
.thenComparing(OrderListDTO::getEvaluateTime, Comparator.nullsFirst(String::compareTo)).reversed()
第二个排序条件:evaluateTime,为null时排序靠后;
Comparator.nullsFirst(String::compareTo).reversed():可以达到为null的靠前排序效果;
.reversed():倒序。
*另外资料参考:JAVA8之Comparator特殊排序以及ComparatorUtils介绍
(2)Arrays.sort、 Collections.sort排序(相对于Stream流较慢)