欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Java的lambda表达式应用

Java的lambda表达式应用

2025/6/25 22:08:12 来源:https://blog.csdn.net/dyong525/article/details/148768703  浏览:    关键词:Java的lambda表达式应用

Lambda表达式是Java 8引入的一项强大特性,它允许以更加简洁的方式表示匿名函数。Lambda表达式不仅让代码更加简洁、清晰,而且为函数式编程提供了有力支持,从而提升了Java语言的表达能力。

本文主要讲解lambda应用stream处理集合的应用。

1、基础应用

stream流的基础应用是对集合的过滤、对象转换、类型转换等。

//集合过滤后转换存储对象iPage.getRecords().stream()//根据状态过滤集合.filter(item -> item.getStatus() == 2)//集合对象转换.map(item -> {OrderVo vo = new OrderVo();BeanUtils.copyProperties(item, vo);vo.setStatusStr(OrderStatusEnum.descByCode(item.getStatus()));return vo;}).collect(Collectors.toList());//集合转换为订单号为key的map对象iPage.getRecords().stream().collect(Collectors.toMap(OrderPo::getOrderNo, item->item));//获取集合订单号集合iPage.getRecords().stream().map(item->item.getOrderNo()).collect(Collectors.toSet());

其他功能的用法如下

//获取第一个对象OrderPo record = iPage.getRecords().stream().findFirst().get();//随机获取一个对象record = iPage.getRecords().stream().findAny().get();//获取订单金额最大的对象record = iPage.getRecords().stream().max((a,b)-> a.getOrderAmount().compareTo(b.getOrderAmount())>0? 1:-1).get();//统计数量long count = iPage.getRecords().stream().count();//排序List<OrderPo> list = iPage.getRecords().stream().sorted((a,b)-> a.getOrderAmount().compareTo(b.getOrderAmount())>0? 1:-1).collect(Collectors.toList());

2、分组统计功能

//按订单状态分组统计
Map<Integer, List<OrderPo>> map = iPage.getRecords().stream().collect(Collectors.groupingBy(OrderPo::getStatus));

3、reduce使用

//汇总订单金额
BigDecimal amount = iPage.getRecords().stream().map(OrderPo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);//
BigDecimal amount = iPage.getRecords().stream().map(OrderPo::getOrderAmount).reduce((sum, x) -> sum.add(x)).get();//汇总订单数量
Integer q = iPage.getRecords().stream().map(OrderPo::getQuantity).reduce(0, Integer::sum);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词