Sorted 方法提供了排序的功能,并且允许我们自定义排序,demo 如下:

    1. public void testSorted(){
    2. // 学生按照学号排序
    3. List<String> beforeCodes = students.stream().map(StudentDTO::getCode).collect(Collectors
    4. log.info("TestSorted 按照学号排序之前 {}",JSON.toJSONString(beforeCodes));
    5. List<String> sortedCodes = beforeCodes.stream().sorted().collect(Collectors.toList());
    6. log.info("TestSorted 按照学号排序之后 is {}",JSON.toJSONString(sortedCodes));
    7. // 直接连起来写
    8. List<String> codes = students.stream()
    9. .map(StudentDTO::getCode)
    10. // 等同于 .sorted(Comparator.naturalOrder()) 自然排序
    11. .sorted()
    12. .collect(Collectors.toList());
    13. log.info("TestSorted 自然排序 is {}",JSON.toJSONString(codes));
    14. // 自定义排序器
    15. List<String> codes2 = students.stream()
    16. .map(StudentDTO::getCode)
    17. // 反自然排序
    18. .sorted(Comparator.reverseOrder())
    19. .collect(Collectors.toList());
    20. log.info("TestSorted 反自然排序 is {}",JSON.toJSONString(codes2));
    21. }

    运行结果如下:
    image.png