1. ArrayList list = new ArrayList<>(){
    2. {
    3. add(1);
    4. add(9);
    5. add(2);
    6. add(4);
    7. add(3);
    8. }
    9. };
    10. // 比较方法
    11. Comparator<Integer> normal = Integer::compareTo;
    12. // 过滤添加
    13. Predicate<Integer> predicate = x -> x.intValue() < 4;
    14. System.out.println(list.stream().sorted(normal).collect(Collectors.toList()).toString());
    15. System.out.println(list.stream().sorted(normal).filter(predicate).collect(Collectors.toList()).toString());
    16. List<Integer> res = (List<Integer>) list.stream().sorted(normal).collect(Collectors.toList());
    17. // 独立的方式方法
    18. Collections.sort(res,normal.reversed());
    19. System.out.println(res);
    20. System.out.println(Optional.ofNullable(res).toString());
    21. List list1 = null;
    22. // 保证空对象也不报错
    23. System.out.println(Optional.ofNullable(list1).toString());
    24. // 这里会报错
    25. System.out.println(list1.toString());

    结果为:
    image.png
    stream中的对象去重

    1. public static void main(String[] args) {
    2. List<Person> list = new ArrayList<Person>(){
    3. {
    4. add(Person.builder().id(1L).name("哈哈哈").sex("男").build());
    5. add(Person.builder().id(2L).name("哈哈哈2").sex("女").build());
    6. add(Person.builder().id(3L).name("哈哈哈").sex("男").build());
    7. }
    8. };
    9. //赋值初始化过程省略
    10. List<Person> uniqueByName = list.stream().collect(
    11. Collectors.collectingAndThen(
    12. Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
    13. );
    14. System.out.println(uniqueByName);
    15. }
    16. @Data
    17. @SuperBuilder(toBuilder = true)
    18. public static class Person {
    19. private Long id;
    20. private String name;
    21. private String sex;
    22. }

    结果为:
    image.png