Java stream 排序,第1张

数字排序

  1. List<Student> students = new ArrayList<>();
  2. Student student1 = new Student("六年级","Math","小张",1D);
  3. students.add(student1);
  4. Student student2 = new Student("三年级上","English","小钱",8D);
  5. students.add(student2);
  6. Student student3 = new Student("五年级","Chinese","小孙",6D);
  7. students.add(student3);
  8. 倒序
  9. List<Student> collect = students.stream().sorted(Comparator.comparing(Student::getMark).reversed()).collect(Collectors.toList());
  10. 控制台:
  11. 排序前:1.0|8.0|6.0|
  12. 排序后:8.0|6.0|1.0|
  13. 正序
  14. List<Student> collect = students.stream().sorted(Comparator.comparing(Student::getMark)).collect(Collectors.toList());
  15. 控制台:
  16. 排序前:1.0|8.0|6.0|
  17. 排序后:1.0|6.0|8.0|

以中文排序

  1. List<Student> students = new ArrayList<>();
  2. Student student1 = new Student("六年级","Math","小张",1D);
  3. students.add(student1);
  4. Student student2 = new Student("三年级上","English","小钱",8D);
  5. students.add(student2);
  6. Student student3 = new Student("五年级","Chinese","小孙",6D);
  7. students.add(student3);
  8. List<Student> collect = students.stream().sorted(Comparator.comparing(Student::getGrade).reversed()).collect(Collectors.toList());
  9. 控制台:
  10. 排序前:六年级|三年级上|五年级|
  11. 排序后:六年级|五年级|三年级上|
  12. List<Student> collect = students.stream().sorted(Comparator.comparing(Student::getGrade)).collect(Collectors.toList());
  13. 控制台:
  14. 排序前:六年级|三年级上|五年级|
  15. 排序后:三年级上|五年级|六年级|

排序字段为null时

  1. List<Student> students = new ArrayList<>();
  2. Student student1 = new Student("六年级","Math","小张",1D);
  3. students.add(student1);
  4. Student student2 = new Student("三年级上","English","小钱",8D);
  5. students.add(student2);
  6. Student student3 = new Student(null,"Chinese","小孙",6D);
  7. students.add(student3);
  8. List<Student> collect = students.stream().sorted(Comparator.comparing(Student::getGrade).reversed()).collect(Collectors.toList());
  9. 控制台:
  10. Exception in thread "main" java.lang.NullPointerException
  11. at java.lang.String.compareTo(String.java:1155)
  12. at java.lang.String.compareTo(String.java:111)
  13. at java.util.Comparator.lambda$comparinga9974f(Comparator.java:469)
  14. at java.util.Collections$ReverseComparator2.compare(Collections.java:5185)
  15. at java.util.TimSort.countRunAndMakeAscending(TimSort.java:360)
  16. at java.util.TimSort.sort(TimSort.java:220)
  17. at java.util.Arrays.sort(Arrays.java:1512)
  18. at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:348)
  19. at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
  20. at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
  21. at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
  22. at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
  23. at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Java stream 排序

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情