当前位置:网站首页>使用stream实现两个list集合的合并(对象属性的合并)
使用stream实现两个list集合的合并(对象属性的合并)
2022-08-11 09:37:00 【ᅟᅟᅟᅟᅟ】
在开发导出报表的时候,搜索了两个list集合,形式如下:


因为不能同时满足两种情况的搜索,所以只能分开查找数据,再将相同id对应的对象数据合并。
最终展示为下表所示的对象集合。
| id | name | questionNum | pointNum | score |
| 4799 | 主次干道、商业大街 | 187 | 13 | 1121 |
代码如下:
//处理数据,集合合并
//list1,list2为搜索出的两个集合
resultList = list1.stream().map(m -> {
list2.stream().filter(m2-> Objects.equals(m.getTypeId(),m2.getTypeId())).forEach(m2-> {
m.setNum(m2.getNum());
m.setScores(m2.getScores());
});
return m;
}).collect(Collectors.toList());stream循环匹配合并list,根据共同字段合并集合
public static void main(String[] args) {
List<MemberInformationDomain> memberInformationDomainList = Lists.newArrayList();
//会员卡信息数据
List<MemberInfoNumDomain> memberInfoNumDomainList = Lists.newArrayList();
MemberInformationDomain informationDomain = new MemberInformationDomain();
informationDomain.setMemberId(1L);
informationDomain.setNickname("罗");
MemberInformationDomain informationDomain1 = new MemberInformationDomain();
informationDomain1.setMemberId(2L);
informationDomain1.setNickname("罗");
memberInformationDomainList.add(informationDomain);
memberInformationDomainList.add(informationDomain1);
MemberInfoNumDomain numDomain = new MemberInfoNumDomain();
numDomain.setMemberId(1L);
numDomain.setAccountMergeNum(2);
numDomain.setEntityCardNum(2);
numDomain.setHoldCardNum(4);
numDomain.setVirtualCardNum(6);
numDomain.setJointlyCardNum(1);
memberInfoNumDomainList.add(numDomain);
memberInformationDomainList.stream().forEach(infoList -> {
memberInfoNumDomainList.stream().forEach(numList -> {
if (infoList.getMemberId().equals(numList.getMemberId())) {
infoList.setAccountMergeNum(numList.getAccountMergeNum());
infoList.setHoldCardNum(numList.getHoldCardNum());
infoList.setEntityCardNum(numList.getEntityCardNum());
infoList.setJointlyCardNum(numList.getJointlyCardNum());
infoList.setVirtualCardNum(numList.getVirtualCardNum());
}
});
});
System.out.println("得到的集合对象为:" + memberInformationDomainList);
}
边栏推荐
- Oracle database use problems
- 自定义卷积核的分组转置卷积如何实现?
- 盘点四个入门级SSL证书
- 谁能解答?从mysql的binlog读取数据到kafka,但是数据类型有Insert,updata,
- 2022-08-09 顾宇佳 学习笔记
- Detailed Explanation of the Level 5 Test Center of the Chinese Institute of Electronics (1)-string type string
- HDRP shader to get shadows (Custom Pass)
- tar 命令使用
- Jupyter Notebook 插件 contrib nbextension 安装使用
- 神经网络图怎么分析,画神经网络结构图
猜你喜欢

持续集成/持续部署(2)Jenkins & SonarQube

分割学习(loss and Evaluation)

Data middle platform program analysis and development direction

Software custom development - the advantages of enterprise custom development of app software

IPQ4019/IPQ4029 support WiFi6 MiniPCIe Module 2T2R 2×2.4GHz 2x5GHz MT7915 MT7975

Typora和基本的Markdown语法

Simple interaction between server and client

网络模型(DeepLab, DeepLabv3)

Simple strokes on the Internet

使用树莓派和OAK相机部署机器人视觉模型
随机推荐
pycharm cancel msyql expression highlighting
HDRP Custom Pass Shader Get world coordinates and near clipping plane coordinates
Halcon算子解释
HDRP shader 获取阴影(Custom Pass)
opencv 制作趣图
Typora和基本的Markdown语法
基于卷积的神经网络系统,卷积神经网络毕业论文
oracle使用online_catalog收集数据,想看下online_catalog模式修改表字
OAK-FFC Series Product Getting Started Guide
零基础创作专业wordpress网站12-设置标签栏图标(favicon)
Lightweight network (1): MobileNet V1, V2, V3 series
Primavera P6 Professional 21.12 Login exception case sharing
大家有遇到这种错吗?flink-sql 写入 clickhouse
Inventorying Four Entry-Level SSL Certificates
企业展厅制作要具备的六大功能
VideoScribe stuck solution
深度神经网络与人脑神经网络哪些区域有一定联系?
数据库基础
【剑指offer】左旋字符串,替换空格,还有类题!!!
HDRP shader 获取像素深度值和法线信息