【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环

这里是 simpleInfoList 集合,记为集合A**(传值对象)**

java 复制代码
List<CourseSimpleInfoDTO> simpleInfoList = courseClient.getSimpleInfoList(courseIds);
        if(simpleInfoList==null){
            throw new BizIllegalException("当前课程不存在!");
        }

这里是 learningPlanVOS 集合,记为集合B**(被传值对象)**

java 复制代码
ArrayList<LearningPlanVO> learningPlanVOS = new ArrayList<>();
        lessonPageRecords.stream()
                .forEach(new Consumer<LearningLesson>() {
                    @Override
                    public void accept(LearningLesson learningLesson) {
                        LearningPlanVO learningPlanVO = new LearningPlanVO();
                        BeanUtils.copyProperties(learningLesson,learningPlanVO);

                        learningPlanVO.setCourseName(); //课程名称
                        learningPlanVO.setSections(); //课程章节数量
                        learningPlanVO.setWeekLearnedSections(); //本周已学习章节数
                        learningPlanVOS.add(learningPlanVO);
                    }
                });

现在需要将集合A中的**【课程名称】以及【课程的章节数量】****属性,挨个对应的传入到集合B中进行赋值;像平常,大多数人想到的应该是List里面直接套List,**这样即会繁琐复杂,而且还浪费空间,真实一举不两得

所以,这里可以先将集合A转换为 map 集合(使用 stream 流将其转换),以课程ID为键,以DTO对象为值

然后将集合A转化后的 map 集合,根据 get 对应的课程ID,获取到对应的 DTO 对象,然后传入集合 B 中,进行挨个的赋值操作

相关推荐
hongmai6668881 分钟前
竖插专用:ESP8684-WROOM-07-H2X模组上手记录
笔记·单片机·嵌入式硬件·物联网·risc-v
小手cool1 小时前
JSON.parseObject 返回 List 时不能强制转换的解决方案
java·json·list
是枚小菜鸡儿吖3 小时前
把视频教程变成可复习的笔记:Docker 部署 BiliNote,自动转写与总结
笔记·docker·容器
运维全栈笔记3 小时前
Vue + Spring Boot 前后端分离项目部署笔记(若依 RuoYi-Vue 3.9.2)
运维·服务器·vue.js·spring boot·笔记·开源·开源软件
豆沙沙包?8 小时前
C++~~~stack容器、queue容器、list容器(p45-P56)
c++·windows·list
xian_wwq10 小时前
【学习笔记】-深度认知系列-第1讲-AI不是魔法——三句话讲清楚人工智能到底是什么
笔记·学习·深度认知
M78佐菲10 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
摇滚侠11 小时前
《SpringBoot 3:入门与应用实战》第 5 章 使用 Spring Boot 阅读笔记 9
java·spring boot·笔记
浪兎兎12 小时前
Docker 容器技术笔记
笔记·docker·容器
LuminousCPP12 小时前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树