一、前言
在我们日常开发中,可能会遇到想要获取两个List集合中的共同数据,看到这里,有的小伙伴就想,直接遍历判断取出来不就好了,确实,虽然,这种办法是可行的,但是,是不是就代码量和杂七杂八的加起来,就显得很冗余,不够精,这里我来教你一种写法,可以利用java8的stream(流)来完成操作喔!
二、代码实现
List<String>departmentUserNos=departmentVOList.stream().map(UserDepartmentVO::getUserNo).collect(toList()); List<String>postUserNos=uo.stream().map(UserPostVO::getUserNo).collect(toList()); // 取出交集数据List<String>collect=departmentUserNos.stream().filter(postUserNos::contains).collect(toList());
三、代码讲解
这段代码的作用是将两个列表中的元素取交集,并将交集元素存储在一个新的列表中。
代码步骤解释:
1. 首先,通过使用stream()方法将departmentVOList列表转换为一个流。
2. 使用map()方法将UserDepartmentVO对象中的userNo属性提取出来,形成一个新的流。
3. 使用collect()方法将流中的元素收集到一个新的列表departmentUserNos中。
4. 同样地,通过使用stream()方法将uo列表转换为一个流。
5. 使用map()方法将UserPostVO对象中的userNo属性提取出来,形成一个新的流。
6. 使用collect()方法将流中的元素收集到一个新的列表postUserNos中。
7. 使用stream()方法将departmentUserNos列表转换为一个流。
8. 使用filter()方法过滤出在postUserNos列表中存在的元素。
9. 使用collect()方法将过滤后的元素收集到一个新的列表collect中
最终,collect列表中存储的是departmentUserNos和postUserNos两个列表的交集元素。