Comparator学习总结

 List<Teach> list = new ArrayList<>();
        Teach teach1 = new Teach();
        Teach teach2 = new Teach();
        Teach teach3 = new Teach();
        Teach teach4 = new Teach();
        teach1.setName("赵大");
        teach1.setAge(20);

        teach2.setName("钱二");
        teach2.setAge(19);

        teach3.setName("孙三");
        teach3.setAge(null);

        teach3.setName("李四");
        teach3.setAge(17);


        list.add(teach1);
        list.add(teach2);
        list.add(teach3);
        list.add(teach4);

 

List<Teach> list1 = list.stream().sorted(Comparator.comparing(Teach::getAge)).collect(Collectors.toList());


Exception in thread "main" java.lang.NullPointerException
	at java.util.Comparator.lambda$comparing$77a9974f$1(Comparator.java:469)
	at java.util.TimSort.countRunAndMakeAscending(TimSort.java:356)
	at java.util.TimSort.sort(TimSort.java:220)
	at java.util.Arrays.sort(Arrays.java:1512)
	at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:348)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at com.example.demo.TestTeach.main(TestTeach.java:34)

 

 通过nullsFirst或者nullsLast可以兼容null值

    //[Teach{name='null', age=null}, Teach{name='李四', age=17}, Teach{name='钱二', age=19}, Teach{name='赵大', age=20}]
        List<Teach> list1 = list.stream().sorted(Comparator.comparing(Teach::getAge ,
                Comparator.nullsFirst(Integer::compare))).collect(Collectors.toList());

 对结果取反


        //[Teach{name='赵大', age=20}, Teach{name='钱二', age=19}, Teach{name='李四', age=17}, Teach{name='null', age=null}]
        List<Teach> list1 = list.stream().sorted(Comparator.comparing(Teach::getAge ,
                Comparator.nullsFirst(Integer::compare)).reversed()).collect(Collectors.toList());

 

 

相关推荐

  1. ComparableComparator,你学会了吗?

    2023-12-30 11:44:03       37 阅读
  2. 排序 Comparable接口、Comparator接口

    2023-12-30 11:44:03       39 阅读
  3. 学习总结

    2023-12-30 11:44:03       45 阅读
  4. 学习总结

    2023-12-30 11:44:03       36 阅读
  5. 学习总结

    2023-12-30 11:44:03       39 阅读
  6. 学习总结

    2023-12-30 11:44:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-30 11:44:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-30 11:44:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-30 11:44:03       87 阅读
  4. Python语言-面向对象

    2023-12-30 11:44:03       96 阅读

热门阅读

  1. python + flask+nginx+mysql环境安装详解

    2023-12-30 11:44:03       53 阅读
  2. Spring Cloud Gateway之Predicate断言详解

    2023-12-30 11:44:03       45 阅读
  3. samtools

    2023-12-30 11:44:03       50 阅读
  4. sql中date查询优化

    2023-12-30 11:44:03       58 阅读
  5. 在Django5中使用Websocket进行通信

    2023-12-30 11:44:03       63 阅读
  6. GET和POST请求

    2023-12-30 11:44:03       65 阅读
  7. 机器学习(三) -- 特征工程(更新中)

    2023-12-30 11:44:03       57 阅读