Stream流的使用

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:50   1690   0

本文简单记述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操作判断用户是否有某个权限等

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP