jdk8中怎么使用stream实现对象属性的合并
jdk8中怎么使用stream实现对象属性的合并
这篇“jdk8中怎么使用stream实现对象属性的合并”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jdk8中怎么使用stream实现对象属性的合并”文章吧。
java使用stream实现list中对象属性的合并:根据两个List中的某个相同字段合并成一条List,包含两个List中的字段
一、前言
为什么要用Lambda表达式
和Stream流
做集合的处理? 因为效率高、代码简洁、高端大气上档次!
(1)描述:比如一个List集合中List<对象1>,该对象1包含A、B和C列;另外一个List集合中List<对象2>,该对象2包含A、D列;
(2)问题:需要将两个List合成List<对象3>返回,该对象3包含A、B、C、D列
(3)实现:使用stream实现两个list集合合并成一个list集合
简要说明:filter的使用方式为: filter(item -> item的逻辑判断 ) ,其中filter会保留判断条件为true的记录
二、示例
示例1:java8 合并两个 list<map>
java8 合并两个 list<map>, 并将userId 相同的所有属性合并到一个map中
list1中对象的属性:userId、userName
list2中对象的属性:userId、gender、age
最总集合中对象的属性:userId、userName、gender、age
importjava.util.*;importjava.util.stream.Collectors;/***@authorqzz*/publicclassListTest{publicstaticvoidmain(String[]args){mergeList();}/***@Description:合并两个list
合并运行结果:
示例2:java8 合并两个 list<T>
java8 合并两个 list<T>, 并将tickeId相同的所有属性合并到一个T中
list1中对象的属性:ticketId、ticketName
list2中对象的属性:ticketId、saleNum、batchAvailableNum
最总集合中对象的属性:ticketId、ticketName、saleNum、batchAvailableNum
importjava.util.*;importjava.util.stream.Collectors;/***@authorqzz*/publicclassListTest1{publicstaticvoidmain(String[]args){mergeList();}/***@Description:合并两个list
合并运行结果:
示例3:java8 合并两个 list<T>,集合个数前者小于后者,要后者
list1中对象的属性:ticketId、ticketName
list2中对象的属性:ticketId、batchId
最总集合中对象的属性:ticketId、ticketName、batchId
list1:
ticketId:10001 , ticketName:唐僧
ticketId:10002 , ticketName:八戒
list2:
ticketId:10001 , batchId:1
ticketId:10001 , batchId:2
ticketId:10002 , batchId:1
ticketId:10002 , batchId:2
ticketId:10003 , batchId:2
想要的结果:list1合并到 list 2
ticketId:10001 , ticketName:唐僧,batchId:1
ticketId:10001 , ticketName:唐僧,batchId:2
ticketId:10002 , ticketName:八戒,batchId:1
ticketId:10002 , ticketName:八戒,batchId:2
ticketId:10003 , ticketName:八戒,batchId:2
代码实现:
importjava.util.ArrayList;importjava.util.List;importjava.util.Objects;importjava.util.stream.Collectors;/***@authorqzz*/publicclassListTest2{publicstaticvoidmain(String[]args){mergeList();}/***@Description:合并两个list
合并运行结果:
示例4:java8 合并两个 list<T>,集合个数前者大于后者,要后者
list1中对象的属性:ticketId、ticketName
list2中对象的属性:ticketId、batchId
最总集合中对象的属性:ticketId、ticketName、batchId
list1:
ticketId:10001 , ticketName:唐僧
ticketId:10002 , ticketName:八戒
list2:
ticketId:10001 , batchId:1
ticketId:10001 , batchId:2
想要的结果:list1合并到 list 2,过滤掉batch不存在的数据
ticketId:10001 , ticketName:唐僧,batchId:1
ticketId:10001 , ticketName:唐僧,batchId:2
代码实现:
importjava.util.ArrayList;importjava.util.List;importjava.util.Objects;importjava.util.stream.Collectors;/***@authorqzz*/publicclassListTest3{publicstaticvoidmain(String[]args){mergeList();}/***@Description:合并两个list
合并运行结果:
以上就是关于“jdk8中怎么使用stream实现对象属性的合并”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。
推荐阅读
-
Linux中如何安装和使用 Java 开发环境
-
go语言中list如何删除元素
go语言中list如何删除元素这篇文章主要介绍“go语言中list...
-
go语言如何获取list长度
go语言如何获取list长度本文小编为大家详细介绍“go语言如何获...
-
golang如何添加list元素
golang如何添加list元素这篇“golang如何添加list...
-
C++之list容器模拟怎么实现
C++之list容器模拟怎么实现这篇“C++之list容器模拟怎么...
-
C++之list容器如何使用
C++之list容器如何使用今天小编给大家分享一下C++之list...
-
php 将数组中以下划线连接的键转为驼峰
php中在做接口的时候,有时候接口定义规范约束返回字段为驼峰,而PHP中直接取数据表中字段的时候,一般都是以下划线分割的,...
-
在PHP中灵活使用foreach+list处理多维数组
先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:$arr = [ [1, 2, [...
-
PHP基础学习7.深入循环之while list each循环
-
php手把手教你做网站(九)thinkphp6 分页带参数,error无效