Sorted 方法提供了排序的功能,并且允许我们自定义排序,demo 如下:
public void testSorted(){
// 学生按照学号排序
List<String> beforeCodes = students.stream().map(StudentDTO::getCode).collect(Collectors
log.info("TestSorted 按照学号排序之前 {}",JSON.toJSONString(beforeCodes));
List<String> sortedCodes = beforeCodes.stream().sorted().collect(Collectors.toList());
log.info("TestSorted 按照学号排序之后 is {}",JSON.toJSONString(sortedCodes));
// 直接连起来写
List<String> codes = students.stream()
.map(StudentDTO::getCode)
// 等同于 .sorted(Comparator.naturalOrder()) 自然排序
.sorted()
.collect(Collectors.toList());
log.info("TestSorted 自然排序 is {}",JSON.toJSONString(codes));
// 自定义排序器
List<String> codes2 = students.stream()
.map(StudentDTO::getCode)
// 反自然排序
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
log.info("TestSorted 反自然排序 is {}",JSON.toJSONString(codes2));
}
运行结果如下: