使用流式编程:
List<BusinessFaceIssuedRecord> distinctList = list.stream().
collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing
(o -> o.getPersionId() + ";" + o.getDeviceId()+";"+o.getIssuedType()))),
ArrayList::new));
使用流式编程对象排序:
// 先按照订单类型降序,再按照订单应付金额从高到低排序,支持空值null
private static void sort2(List<Order> orders) {
orders.sort(Comparator.comparing(Order::getType, (o1, o2) -> o1 == null ? 1 : (o2 == null ? -1 : o2.compareTo(o1)))
.thenComparing(Order::getAllAmt, (o1, o2) -> o1 == null ? 1 : (o2 == null ? -1 : o2.compareTo(o1)))
);
}
// 先按照订单类型降序,再按照订单应付金额从高到低排序,不支持空值null
private static void sort1(List<Order> orders) {
orders.sort(Comparator.comparing(Order::getType, Comparator.reverseOrder())
.thenComparing(Order::getAllAmt, Comparator.reverseOrder()));
}