lamda 对比两个list_java8 多个list对象用lambda求差集操作

本文介绍了如何使用Java8的Lambda表达式来对比两个list对象并找出差集,具体场景是筛选接口数据中本地不存在的账户。通过filter和stream操作,实现了高效地获取差集。此外,还探讨了Lambda表达式合并相同属性对象的集合,对比了与HashMap方法的优劣。
摘要由CSDN通过智能技术生成

业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。

调用接口获取的数据集合

List list = response.getData().getItems();

本地查询出来的账户集合

List towList = accountRepository.findAll();

筛选差集代码

List distinctByUniqueList = list.stream()

.filter(item -> !towList.stream()

.map(e -> e.getOwnerId())

.collect(Collectors.toList())

.contains(item.getOwnerId()))

.collect(Collectors.toList());

就这样获取到需要处理的数据。

补充知识:Java8中用Lambda表达式合并多个相同属性的对象集合

在实际的业务处理中,我们经常会碰到需要合并同一个集合内相同属性对象的情况,比如,同一个用户短时间内下的订单,我们需要将各个订单的金额合并成一个总金额。

那么用lambda表达式和HashMao怎么分别处理该种情况呢?本文以Student的name,age,score为例,一个List集合中有多个Student对象,针对name和age相同属性值的Student对象,对score值相加并合并为一条,介绍两种不同的处理办法。

1.用lambda表达式:首先,我们新建一个Student类,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值