java8——steam流篇(二)

本文探讨了在Java8中使用Stream流对List进行排序的两种方法,包括List工具类和Stream方式,并揭示了在排序后与分组结合使用时可能遇到的问题。示例代码展示了如何根据特定条件过滤、转换并按日期排序NameValueDto对象,最后通过分组操作将数据聚合。注意,在排序和分组同时使用时,分组可能无效,但提供了后续解决策略。
摘要由CSDN通过智能技术生成

list排序两种方式(1)List工具类(2)stream方式

java8方式:list.Stream.sorted(Comparator.comparing(NameValueDto::getName).reversed()) // 逆序排序。
java方式:list.sorted(Comparator.comparing(NameValueDto::getName).reversed())
是不感觉很帅?
而且我发现了一个bug,排序和分组一起用时是没效果的。
代码如下:
Map<String, List> dealwith = todos.stream()
.filter(nameValueDto -> StringUtils.isNotEmpty(nameValueDto.getName())
&&DateUtil.getDates(nameValueDto.getName()).after(finalStart)
&&DateUtil.getDates(nameValueDto.getName()).before(finalEnd))
.sorted(Comparator.comparing(NameValueDto::getName)) // 根据日期数排序
.map(nameValueDto -> { // 处理日期精确位数格式
NameValueDto temporary = new NameValueDto();
String name;
switch(dateType){
case “day”:
name = nameValueDto.getName().substring(0, 13);
temporary.setName(name);<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值