.stream()排序
时间: 2023-11-18 17:56:20 浏览: 85
排序
在Java 8中,可以使用流(Stream)来对集合进行排序。排序可以使用sorted()方法,该方法可以接受一个Comparator参数,用于指定排序规则。Comparator可以使用Comparator.comparing()方法来创建,该方法可以接受一个Function参数,用于指定排序的属性。例如,可以使用以下代码对一个EquStatusCountVO对象的status属性进行排序:
list.stream().sorted(Comparator.comparing(EquStatusCountVO::getStatus)).collect(Collectors.toList());
如果需要对空值进行处理,可以使用Comparator.nullsLast()或者Comparator.nullsFirst()方法来指定空值的排序规则。例如,可以使用以下代码对一个EquStatusCountVO对象的status属性进行排序,并将空值排在最后:
list.stream().sorted(Comparator.comparing(EquStatusCountVO::getStatus, Comparator.nullsLast(String::compareTo))).collect(Collectors.toList());
如果需要对属性进行倒序排序,可以使用Comparator.reverseOrder()方法。例如,可以使用以下代码对一个EquStatusCountVO对象的status属性进行倒序排序:
list.stream().sorted(Comparator.comparing(EquStatusCountVO::getStatus, Comparator.reverseOrder())).collect(Collectors.toList());
需要注意的是,引用中提到的两种排序方式是不同的,一定要区分开来。第一种方式是得到排序结果后再进行排序,而第二种方式是直接进行排序。建议使用第二种方式,因为更容易理解。同时,使用Comparator.comparing()方法可以避免空指针异常。
阅读全文