当前位置: 首页 > news >正文

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

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

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

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

ArrayList<LearningPlanVO> learningPlanVOS = new ArrayList<>();lessonPageRecords.stream().forEach(new Consumer<LearningLesson>() {@Overridepublic 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 中,进行挨个的赋值操作

                                                                       

相关文章:

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

这里是 simpleInfoList 集合&#xff0c;记为集合A&#xff08;传值对象&#xff09; List<CourseSimpleInfoDTO> simpleInfoList courseClient.getSimpleInfoList(courseIds);if(simpleInfoListnull){throw new BizIllegalException("当前课程不存在!");}这…...

Cisco Secure ACS 5.8.0.32 安装 + Crack 教程

Cisco Secure ACS 5.8.0.32 安装 Crack 教程 前言系统环境开始安装 开始破解导入授权文件 前言 在ESXi 6.7 上经历过无数次的安装尝试 测试了各种兼容版本都没有安装成功,记最后一次安装成功的过程. 系统环境 服务器 : Dell R720xd CPU : E5-2620 v2 系统 : ESXi 6.7…...

项目准备March

Nginx主要用来作为Http服务器&#xff0c;要实现Tomcat的负载均衡&#xff0c;就可以通过Nginx来实现。 正向代理代理的是客户端&#xff0c;反向代理代理的是服务端。SpringBoot采用约定优于配置的思想&#xff0c;简化Spring项目的配置开发。 前端请求其实并未直接发送到后…...

集智书童 | YOLO+混合注意力机制 | YOLOv5再加4.3%才可以做对手,Transformer混合设计依旧可以卷

本文来源公众号“集智书童”&#xff0c;侵权删&#xff0c;干货满满。YOLOv5重出江湖&#xff01; 原文链接&#xff1a;https://mp.weixin.qq.com/s/vb7HsA0fKDgRc3uC8Z-2yw 在工业生产过程中&#xff0c;由于低效率、不统一的评估、高成本以及缺乏实时数据&#xff0c;传统…...

Codeforces Round 894 (Div. 3)----->C. Flower City Fence

题目总思路&#xff1a; 要判断是否对称&#xff0c;只需要判断两个放法得到的图形是否相同&#xff08;竖着放&#xff0c;横着放&#xff09;&#xff0c;这两个放法有个很重要的特性&#xff1a;就是数组中大于1的个数&#xff0c;就是横着放时&#xff0c;第一竖排的高度。…...

CryoEM - CryoAI: Amortized Inference of Poses 工程源码复现

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/136384544 Paper: CryoAI: Amortized Inference of Poses for Ab Initio Reconstruction of 3D Molecular Volumes from Real Cryo-EM Images CryoAI: 基于摊…...

项目预备知识

导入两个头文件 #include <graphics.h> // 引入 EasyX 的图形库头文件 #include <conio.h> // 引入 conio.h 以使用 getch() 窗口创建函数&#xff1a;小黑屏 initgraph(640, 480, SHOWCONSOLE); closegraph(); //关闭一个窗口 设置背景颜色&#xff1a;这…...

redis实战笔记汇总

文章目录 1 NoSQL入门概述1.1 能干嘛&#xff1f;1.2 传统RDBMS VS NOSQL1.3 NoSQL数据库的四大分类1.4 分布式数据库CAP原理 BASE原则1.5 分布式集群简介1.6 淘宝商品信息的存储方案 2 Redis入门概述2.1 是什么&#xff1f;2.2 能干嘛&#xff1f;2.3 怎么玩&#xff1f;核心…...

elment-ui table表格排序后 清除排序箭头/恢复默认排序 的高亮样式

问题描述&#xff1a; 1.默认排序是按照名称升序排列&#xff08;图一&#xff09; 2.在选择了筛选项以及其他排序方式之后&#xff0c;箭头高亮是这样的&#xff08;图二&#xff09; 3.当我点击清空按钮后&#xff0c;类型清空了&#xff0c;并且传给后端的排序方式是名称/升…...

MySQL数据库基本操作(二)

查询语句 1. 排序查询* 语法&#xff1a;order by 子句* order by 排序字段1 排序方式1 &#xff0c; 排序字段2 排序方式2... ​* 排序方式&#xff1a;* ASC&#xff1a;升序&#xff0c;默认的。* DESC&#xff1a;降序。 ​* 注意&#xff1a;* 如果有多个排序条件&#…...

Unity(第十部)时间函数和文件函数

时间函数 using System.Collections; using System.Collections.Generic; using UnityEngine;public class game : MonoBehaviour {// Start is called before the first frame updatefloat timer 0;void Start(){//游戏开始到现在所花的时间Debug.Log(Time.time);//时间缩放值…...

【Java学习笔记】

常见算法 查找算法 1.基本查找 public class BasicSearchDemo01 {public static void main(String[] args) {//基本查找//核心&#xff1a;//从0索引开始挨个往后查找//需求&#xff1a;定一个方法利用基本查找&#xff0c;查询某个元素是否存在//数据如下&#xff1a;{131&…...

Python列表生成式你学会了吗

1.最基本的列表生成方式 生成 1-10 之间的整数的一个列表 list1 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] list2 list(range(1, 11)) print(list2) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2.通过程序的方式生成[4, 9, 16, 25,…...

【Mybatis】快速入门 基本使用 第一期

文章目录 Mybatis是什么&#xff1f;一、快速入门&#xff08;基于Mybatis3方式&#xff09;二、MyBatis基本使用2.1 向SQL语句传参2.1.1 mybatis日志输出配置2.1.2 #{}形式2.1.3 ${}形式 2.2 数据输入2.2.1 Mybatis总体机制概括2.2.2 概念说明2.2.3 单个简单类型参数2.2.4 实体…...

在 Rust 中实现 TCP : 1. 联通内核与用户空间的桥梁

内核-用户空间鸿沟 构建自己的 TCP栈是一项极具挑战的任务。通常&#xff0c;当用户空间应用程序需要互联网连接时&#xff0c;它们会调用操作系统内核提供的高级 API。这些 API 帮助应用程序 连接网络创建、发送和接收数据&#xff0c;从而消除了直接处理原始数据包的复杂性。…...

STM32-ADC一步到位学习手册

1.按部就班陈述概念 ADC 是 Analog-to-Digital Converter 的缩写&#xff0c;指的是模拟/数字转换器。它将连续变量的模拟信号转换为离散的数字信号。在 STM32 中&#xff0c;ADC 具有高达 12 位的转换精度&#xff0c;有多达 18 个测量通道&#xff0c;其中 16 个为外部通道&…...

【文件管理】关于上传下载文件的设计

这里主要谈论的是产品设计里面的文件管理&#xff0c;比如文件的上传交互及背后影响到的前后端设计。 上传文件 场景&#xff1a;一条记录&#xff0c;比如个人信息&#xff0c;有姓名&#xff0c;出生年月&#xff0c;性别等一般的字段&#xff0c;还可以允许用户上传附件作为…...

微服务架构 SpringCloud

didi单体应用架构 将项目所有模块(功能)打成jar或者war&#xff0c;然后部署一个进程--医院挂号系统&#xff1b; > 优点: > 1:部署简单:由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。 > 2:技术单一:项目不需要复杂的技术栈&#xff0c;往往一套熟…...

前端 css 实现标签的效果

效果如下图 直接上代码&#xff1a; <div class"label-child">NEW</div> // css样式 // 父元素 class .border-radius { position: relative; overflow: hidden; } .label-child { position: absolute; width: 150rpx; height: 27rpx; text-align: cente…...

SLAM基础知识-卡尔曼滤波

前言&#xff1a; 在SLAM系统中&#xff0c;后端优化部分有两大流派。一派是基于马尔科夫性假设的滤波器方法&#xff0c;认为当前时刻的状态只与上一时刻的状态有关。另一派是非线性优化方法&#xff0c;认为当前时刻状态应该结合之前所有时刻的状态一起考虑。 卡尔曼滤波是…...

L6599A VCO工作原理深度解析:为什么你的LLC闭环仿真总是不稳定?

L6599A VCO工作原理深度解析&#xff1a;为什么你的LLC闭环仿真总是不稳定&#xff1f; 在LLC谐振变换器的设计中&#xff0c;闭环仿真的稳定性往往是工程师面临的最大挑战之一。许多经验丰富的电源工程师都曾遇到过这样的困境&#xff1a;明明按照芯片手册设计了所有外围电路&…...

KY040旋转编码器驱动详解:消抖、正交解码与多平台适配

1. KY040-rotary 库深度解析&#xff1a;面向嵌入式工程师的旋转编码器驱动实践指南旋转编码器是人机交互中最基础、最可靠的物理输入设备之一&#xff0c;广泛应用于工业控制面板、音频设备音量调节、仪器仪表参数设置等场景。KY-040&#xff08;亦称 HW-040&#xff09;作为一…...

FastAPI子应用挂载:别再让root_path坑你一夜稼

Julia&#xff08;julialang.org&#xff09;由Stefan Karpinski、Jeff Bezanson等在2009年创建&#xff0c;目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是&#xff1a; 高性能&#xff1a;编译型语言&#xff08;JIT&#xf…...

Vue3中的computed 与 watch 的区别

Vue3中的computed 与 watch 的区别 当你想要合成一个新数据用来显示时&#xff0c;选 computed。当你想要在数据变化时搞点事情&#xff08;调接口、存本地、操作 DOM&#xff09;&#xff0c;选 watch。 computed&#xff1a;计算属性 computed 主要用于数据的衍生与转换。它基…...

PEASS使用教程

在Kali Linux的权限提升工具生态中&#xff0c;PEASS&#xff08;Privilege Escalation Awesome Scripts SUITE&#xff0c;权限提升优秀脚本套件&#xff09;是一款覆盖Linux与Windows双平台的自动化权限提升扫描工具集。它通过整合Linpeas&#xff08;Linux平台&#xff09;与…...

磁珠在电源端必须加电容?一个容易被忽略的EMI设计细节与避坑指南

磁珠在电源端必须加电容&#xff1f;一个容易被忽略的EMI设计细节与避坑指南 在高速电路设计中&#xff0c;电磁干扰&#xff08;EMI&#xff09;问题往往成为工程师的噩梦。特别是当电路板上集成了Camera模块、RF收发器或其他敏感模拟电路时&#xff0c;电源线上的噪声就像隐形…...

Java Stream API 的底层逻辑

Java Stream API的底层逻辑探秘 Java Stream API自Java 8引入后&#xff0c;彻底改变了集合操作的方式。它通过声明式编程风格&#xff0c;将复杂的迭代逻辑简化为链式调用&#xff0c;同时隐藏了底层实现的复杂性。但Stream并非简单的语法糖&#xff0c;其背后融合了惰性求值…...

AI开发-python-langchain框架(--word文档加载 )喝

AI训练存储选型的演进路线 第一阶段&#xff1a;单机直连时代 早期的深度学习数据集较小&#xff0c;模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低&#xff0c;吞吐量极高&#xff0c;也就是“数据离…...

收藏!2026程序员必看:AI浪潮下如何逆袭高薪新机会?大模型时代生存指南

2026年AI岗位需求激增&#xff0c;大厂春招AI相关岗位占比创新高&#xff0c;薪资可达13.7万。初级程序员面临被AI取代的风险&#xff0c;但AI行业复合型人才稀缺&#xff0c;程序员角色从编码者升级为AI指挥者。文章提供针对不同经验程序员的AI技能学习路线图&#xff0c;建议…...

JBoltAI框架4.2发布!八大核心升级重塑AI开发全场景

深耕AI开发领域&#xff0c;聚焦开发者实际需求&#xff0c;JBoltAI框架持续迭代优化。今日&#xff0c;我们正式宣布JBoltAI框架升级至V4.2版本&#xff0c;带来9大核心功能升级&#xff0c;覆盖语音交互、文件处理、文档生成、知识库优化等全场景&#xff0c;进一步降低AI应用…...