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

两个list中实体某个属性值相同的实体和不同的实体

说明

有两个list,分别是newList 和 oldList,快速取出两个 newList 中某个属性值相同的实体和不同的实体

代码

import lombok.Data;
import lombok.ToString;import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;public class Main {/**** @param args*/public static void main(String[] args) {List<Segment> newList =  new ArrayList<Segment>();Segment newO1 = new Segment();newO1.setCouponNum("1");newO1.setArrAirportCode("北京");newO1.setDepAirportCode("山西");newList.add(newO1);Segment newO12 = new Segment();newO12.setCouponNum("2");newO12.setArrAirportCode("北京2");newO12.setDepAirportCode("山西2");newList.add(newO12);Segment newO13 = new Segment();newO13.setCouponNum("3");newO13.setArrAirportCode("北京2");newO13.setDepAirportCode("山西2");newList.add(newO13);List<Segment> oldList =  new ArrayList<Segment>();Segment oldO1 = new Segment();oldO1.setCouponNum("1");oldO1.setArrAirportCode("北京");oldO1.setDepAirportCode("山西");oldList.add(newO1);Segment oldO12 = new Segment();oldO12.setCouponNum("2");oldO12.setArrAirportCode("北京2");oldO12.setDepAirportCode("山西2");oldList.add(oldO12);Segment oldO13 = new Segment();oldO13.setCouponNum("4");oldO13.setArrAirportCode("北京2");oldO13.setDepAirportCode("山西2");oldList.add(oldO13);//过滤出需要插入的数据,这里就是过滤多个不相同字段List<Segment> collectOne = newList.stream().filter(newSeg -> {for (Segment oldSeg : oldList) {if (newSeg.getCouponNum().equals(oldSeg.getCouponNum())) {return false;}}return true;}).collect(Collectors.toList());//collect中就是需要插入的数据System.out.println("newList中 couponNum 不相同的数据 = " + collectOne);//过滤出需要插入的数据,这里就是过滤多个不相同字段List<Segment> collectTwo = newList.stream().filter(newSeg -> {for (Segment oldSeg : oldList) {if (Objects.equals(newSeg.getCouponNum(),oldSeg.getCouponNum())) {return true;}}return false;}).collect(Collectors.toList());//collect中就是需要插入的数据System.out.println("newList中 couponNum 相同的数据 = " + collectTwo);}
}@ToString
@Data
class Segment {/** Coupon号 */private String couponNum;/** 起飞机场编码 */private String depAirportCode;/** 降落机场编码 */private String arrAirportCode;
}

运行结果

newList中 couponNum 不相同的数据 = [
Segment(couponNum=3, depAirportCode=山西2, arrAirportCode=北京2)
]newList中 couponNum 相同的数据 = [
Segment(couponNum=1, depAirportCode=山西, arrAirportCode=北京), 
Segment(couponNum=2, depAirportCode=山西2, arrAirportCode=北京2)
]
http://www.lryc.cn/news/207032.html

相关文章:

  • Linux下利用Docker快速部署Kafka
  • 竞赛 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类
  • jvm摘要
  • GZ035 5G组网与运维赛题第1套
  • MySQL数据xtrabackup物理备份方法
  • vue3 使用 elementUi: ./lib/theme-chalk/index.css is not exported from package
  • [ROS系列]ORB_SLAM3错误版本(仅记录)
  • APP盾的防御机制及应用场景
  • Unity性能优化一本通
  • Mysql,SqlServer,Oracle获取库名 表名 列名
  • errno变量和显示错误信息
  • Centos 7 安装 Docker Enginee
  • 通过js来实现用身份证号来判断性别和出生年月
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:61-80)
  • 【T】03
  • VBA技术资料MF73:将Logo添加到页眉侧
  • 听GPT 讲Rust源代码--library/std(1)
  • Vue源码总结
  • 记一次调试微信订阅消息的坑
  • ASP.NET Core3.1 API 创建(Swagger配置、数据库连接Sql Server)、开发、部署
  • 大数据之LibrA数据库常见术语(八)
  • 【实战】Kubernetes安装持久化工具NFS-StorageClass
  • 透明安全地解释Moonbeam基金会分配的GLMR去了哪
  • python安装包失败 安装scipy包
  • 解决javascript报错:SyntaxError: Invalid Unicode escape sequence
  • 【Python第三方包】使用Python的Translate包进行文本翻译
  • 【OpenCV实现图像阈值处理】
  • 【Python机器学习】零基础掌握StackingRegressor集成学习
  • JVM(Java Virtual Machine)G1收集器篇
  • 微信小程序设计之主体文件app-json-tabBar