这里是 simpleInfoList 集合,记为集合A(传值对象)
- List
simpleInfoList = courseClient.getSimpleInfoList(courseIds); - if(simpleInfoList==null){
- throw new BizIllegalException("当前课程不存在!");
- }
这里是 learningPlanVOS 集合,记为集合B(被传值对象)
- ArrayList
learningPlanVOS = new ArrayList<>(); - lessonPageRecords.stream()
- .forEach(new Consumer
() { - @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 中,进行挨个的赋值操作