java8 多个list对象用lambda求差集操作

作者:clmm123 时间:2022-02-19 06:26:52 

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

调用接口获取的数据集合

List<AccountVo> list = response.getData().getItems();

本地查询出来的账户集合

List<Account> towList = accountRepository.findAll();

筛选差集代码

List<AccountVo> 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类,

java8 多个list对象用lambda求差集操作

然后在Demo中新建一个List集合存放Student对象,并用lambda表达式进行处理,其中parallelStream是一个并行执行的流.它通过默认的ForkJoinPool,提高你的多线程任务的速度。从结果中我们可以看到,对name和age属性值相同的张三,score值已经相加,并合并为一条新的对象。

java8 多个list对象用lambda求差集操作

2.HashMap合并集合:为了更直观的展示,我们重新new了一个新的类,并重写了hashCode和equal方法。

java8 多个list对象用lambda求差集操作

思路就是利用HashMap的key不能相同,去除相同的key,得到一个新的value值。运行结果如下,相同name和age的student对象中score相加,并得到一个新的对象。

java8 多个list对象用lambda求差集操作

通过比较不难看出,lambda表达式代码量更少,更易阅读,有兴趣的可以继续研究研究java8的一些其他特性。

来源:https://blog.csdn.net/baidu_37302589/article/details/86594630

标签:java8,list,lambda,差集
0
投稿

猜你喜欢

  • java设计模式学习之装饰模式

    2021-10-02 04:22:54
  • Spring Boot Debug调试过程图解

    2023-12-13 10:27:33
  • 解决微服务feign调用添加token的问题

    2023-09-11 09:38:05
  • Android编程简单实现雷达扫描效果

    2021-06-17 20:38:04
  • C#利用ZXing.Net生成条形码和二维码

    2023-11-04 00:36:02
  • spring boot security设置忽略地址不生效的解决

    2022-06-07 16:37:30
  • Android自定义View实现打字机效果

    2022-01-13 11:03:41
  • android 大图片拖拽并缩放实现原理

    2022-11-10 05:59:55
  • SpringBoot返回多种格式的数据的实现示例

    2023-11-24 14:22:52
  • 集成apollo动态日志取缔logback-spring.xml配置

    2021-10-15 16:53:19
  • Android开发之搜索框SearchView用法示例

    2021-10-30 03:40:19
  • Android UI效果之绘图篇(一)

    2022-03-24 08:30:51
  • Javaweb实现在线人数统计代码实例

    2023-01-17 10:19:24
  • Android Studio 常见问题及解决方法(推荐)

    2023-08-18 09:07:35
  • C# WPF 自定义按钮的方法

    2021-08-30 23:42:11
  • java递归实现拼装多个api的结果操作方法

    2023-11-24 23:44:35
  • Android编程实现类似天气预报图文字幕垂直滚动效果的方法

    2022-08-02 08:16:50
  • SpringCloud使用Feign实现服务调用

    2021-11-10 05:19:20
  • android 判断网络是否可用与连接的网络是否能上网

    2021-10-08 02:04:34
  • JDK8 中Arrays.sort() 排序方法详解

    2023-01-17 10:38:30
  • asp之家 软件编程 m.aspxhome.com