Stream流的使用

本文简单记述Stream的使用

第一种、最常用的,从数据库查出数据后,需要封装成vo类,把需要的字段返回给前端

 List<Order> orderList=orderService.list();
 List<OrderVo> list = orderList.stream().map(order -> {
      OrderVo orderVo = new OrderVo();
      BeanUtils.copyProperties(order, orderVo);
      return orderVo;
      }).collect(Collectors.toList());

第二种、只想获取List对象中的某个属性,比如想获取Order的全部id,然后批量查询用户信息

List<Order> list=orderService.list();
List<String> ids=list.stream().map(Order::getId).collect(Collectors.toList());

第三种、去重,根据对象中的某个属性,进行去重处理,比如根据Order的id去重

List<Order> list=orderService.list();
List<Order> orderList= list.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Order:: getId))), ArrayList::new));

第四种、筛选,查出数据后,进行筛选,过滤出符合条件的数据,比如筛选符合条件的订单数

List<Order> list=orderService.list();
int orderCount= (int) list.stream().filter(s -> s.getId().equals(id)&&s.getType().equals(type)).count();

第五种,利用stream进行foreach或者对数组进行逗号分割,anyMatch操作判断用户是否有某个权限等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值