java8中stream流解决两个list合并问题

当我们遇到需要将两个list合并成一个list实体的时候,可以使用java8的stream流来解决,以下是我的一个小demo,可供大家参考学习。

 public ResultDto listBalancer(Integer pageIndex, Integer pageLimit, String userId, MidOsBalancerDto midOsBalancerDto) {
        List<MidOsBalancerDto> dtoList = new ArrayList<MidOsBalancerDto>();
        int code = 200;
        int count = 0;
        String msg = "查询成功";
        try {

            MidOsBalancerExample example = buildExample(midOsBalancerDto);
            count = iMidOsBalancerDao.total(example);

            List<MidOsBalancer> poList = new ArrayList<MidOsBalancer>();
            if (pageIndex != null && pageLimit != null) {
                Page page = PageBuilder.build(pageIndex, pageLimit);

                poList = iMidOsBalancerDao.find(example, page);
            } else {
                poList = iMidOsBalancerDao.find(example);
            }
            if (count > 0) {

                //获取该条件下的对象路由id
                List<String> groupIds = poList.stream().map(MidOsBalancer::getGroupId).collect(Collectors.toList());

                //循环遍历id查询对象路由信息
                MidOsPathExample pathExample = new MidOsPathExample();
                MidOsPathExample.Criteria criteria = pathExample.createCriteria();
                criteria.andIdIn(groupIds);
                List<MidOsPath> midOsPaths = iMidOsPathDao.find(pathExample);

                //获取所有该条件下的LV

                poList.forEach(midBalancer -> {
                    MidOsBalancerDto midOsBalancerDto1 = BeanCopyUtil.getDtoObject(MidOsBalancerDto.class, midBalancer, "loadCreteTime", "vipMask");
                    Integer vipMask = midBalancer.getVipMask();
                    String loadCreteTime = DateUtil.dateFormat(midBalancer.getLoadCreteTime());
                    midOsBalancerDto1.setLoadCreteTime(loadCreteTime);
                    midOsBalancerDto1.setVipMask(vipMask);
                    for (MidOsPath path : midOsPaths) {
                        if (path.getId().equals(midBalancer.getGroupId())) {
                            midOsBalancerDto1.setGroupName(path.getName());
                            midOsBalancerDto1.setGroupStatus(path.getStatus());

                            midOsBalancerDto1.setGroupCreate(DateUtil.dateFormat(path.getLoadCreateTime()));

                        }
                    }
                    dtoList.add(midOsBalancerDto1);
                });

            }

        } catch (Exception e) {
            code = 500;
            msg = "查询失败";
            logger.error("{}", e);
        }
        ResultDto result = ResultUtil.result(dtoList, code, count, msg);
        return result;
    }

你可能感兴趣的:(java从入门到精通,list)