list的stream方法排序中遇到空指针问题

在实际的项目开发中,有时候会使用list.stream().softed()方法进行排序,但是有时候会需要参数为空,就会报错空指针异常。这个时候可以使用这个方法将空的参数放到最后:

List<DataCheckVO> collect = list.stream().sorted(Comparator.comparing(DataCheckVO::getOrganAcquisitionTime,Comparator.nullsLast(String::compareTo))).collect(Collectors.toList());

如果是想放前面,就用first

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java,可以使用Stream来对List进行排序。有两种常见的排序方式:得到排序结果后再排序和直接进行排序。这两种排序方式在实现上有一些区别,所以需要区分开来。第一种方式是在排序后再进行排序,而第二种方式是直接进行排序。一般来说,第二种方式更容易理解。如果你想避免指针异常,可以使用Comparator.comparing方法,并结合Comparator.nullsLast或者Comparator.nullsFirst来处理。比如,你可以使用以下代码对List进行排序list.stream() .sorted(Comparator.comparing(EquStatusCountVO::getStatus, Comparator.nullsLast(String::compareTo))) .collect(Collectors.toList()); 另外,如果你想根据某个属性添加条件过滤数据,你可以使用filter方法。比如,你可以使用以下代码过滤掉类型为“访客”的数据: list = list.stream() .filter(u -> !u.getType().equals("访客")) .collect(Collectors.toList()); 这样,你就可以利用StreamList进行排序和过滤了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [list使用stream排序](https://blog.csdn.net/tpf1070527713/article/details/126135713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [java 8 liststream操作 list的对象的某一个成员取出转为该成员的list,以及对象过滤,筛选某个属性后...](https://blog.csdn.net/mlz_2/article/details/108663550)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值