java实现获取两个list交集,并集
第一种:字符串测试案例
public class Mainss {public static void main(String[] args) {List<String> list1 = new ArrayList<String>();list1.add("1");list1.add("2");list1.add("3");list1.add("5");list1.add("6");List<String> list2 = new ArrayList<String>();list2.add("2");list2.add("3");list2.add("7");list2.add("8");// 交集 1和2共同拥有的List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(Collectors.toList());System.out.println("---交集 intersection---");intersection.parallelStream().forEach(System.out :: println);// 差集 (list1 - list2) 1-list有的 2-list没有List<String> reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(Collectors.toList());System.out.println("---差集 reduce1 (list1 - list2)---");reduce1.parallelStream().forEach(System.out :: println);// 差集 (list2 - list1) 2-list有的 1-list没有List<String> reduce2 = list2.stream().filter(item -> !list1.contains(item)).collect(Collectors.toList());System.out.println("---差集 reduce2 (list2 - list1)---");reduce2.parallelStream().forEach(System.out :: println);// 并集List<String> listAll = list1.parallelStream().collect(Collectors.toList());List<String> listAll2 = list2.parallelStream().collect(Collectors.toList());listAll.addAll(listAll2);// 去重并集List<String> listAllDistinct = listAll.stream().distinct().collect(Collectors.toList());System.out.println("---得到去重并集 listAllDistinct---");for (String key:listAllDistinct) {System.out.println(key);}}
}
打印结果:
---交集 intersection---
3
2
---差集 reduce1 (list1 - list2)---
5
6
1
---差集 reduce2 (list2 - list1)---
8
7
---得到去重并集 listAllDistinct---
1
2
3
5
6
7
8
第二种:对象测试案例
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;public class bingjitest {public static void main(String[] args) {List<Room> pollList = new ArrayList<Room>();for (int i = 2; i < 9; i++) {if(i==3 || i==6 || i==7){continue;}Room room=new Room();room.setId("1000"+i);room.setName("海淀支队-"+i);pollList.add(room);}for (Room member:pollList) {System.out.println("轮询的会场:"+member.getName());}System.out.println("================================================================");List<Room> onlineList = new ArrayList<Room>();for (int i = 1; i < 10; i++) {if(i==4 || i==5 ){continue;}Room room=new Room();room.setId("1000"+i);room.setName("海淀支队-"+i);onlineList.add(room);}for (Room room:onlineList) {System.out.println("在线会场:"+room.getName());}System.out.println("================================================================");List<Room> intersectionList = pollList.stream().filter(a->onlineList.stream().map(b-> b.getName()).collect(Collectors.toList()).contains(a.getName())).collect(Collectors.toList());for (Room room:intersectionList) {System.out.println("会场:"+room.getName());}System.out.println("两个List交集:"+intersectionList.size());System.out.println("================================================================");// 差集 (onlineList - pollList) 2-onlineList有的 1-pollList没有的List<Room> differenceSetBList = onlineList.stream().filter(b->!pollList.stream().map(a-> a.getName()).collect(Collectors.toList()).contains(b.getName())).collect(Collectors.toList());for (Room room:differenceSetBList) {System.out.println("会场:"+room.getName());}System.out.println("差集 (onlineList - pollList):"+differenceSetBList.size());System.out.println("================================================================");}
}
打印结果:
轮询的会场:海淀支队-2
轮询的会场:海淀支队-4
轮询的会场:海淀支队-5
轮询的会场:海淀支队-8
================================================================
在线会场:海淀支队-1
在线会场:海淀支队-2
在线会场:海淀支队-3
在线会场:海淀支队-6
在线会场:海淀支队-7
在线会场:海淀支队-8
在线会场:海淀支队-9
================================================================
会场:海淀支队-2
会场:海淀支队-8
两个List交集:2
================================================================
会场:海淀支队-1
会场:海淀支队-3
会场:海淀支队-6
会场:海淀支队-7
会场:海淀支队-9
差集 (onlineList - pollList):5
================================================================
roommodel:
public class Room {private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Room{" +"id='" + id + '\'' +", name='" + name + '\'' +'}';}
}
java实现获取两个list交集,并集相关推荐
- java实现获取两个list交集
如何获取两个list的交集,使用java8 的stream实现非常容易. java流实现 创建两个字符串list,两者都有重复的元素: List<String> list = Arrays ...
- java 集合,实现获取两个list交集,并集,差集
java 集合,实现获取两个list交集,并集,差集 public static void main(String[] args) {List<String> list1 = new Ar ...
- java:获取两个日期相隔天数
java:获取两个日期相隔天数 1 LocalDateTime使用 package com.xiaoxu.tool.demo;import org.springframework.lang.NonNu ...
- java 截取指定字母 重复_用JAVA编程获取两个指定字符串中的最大相同子串
/** * 编程获取两个指定字符串中的最大相同子串 * 如:str1="asdafghjka", str2="aaasdfg" 他们的最大子串为"as ...
- pandas对dataframe的两列取交集并集
输入:一个dataFrame,其中的两列是集合. 输出:对两列合并成新的一列,内容为两列的交集. 举个例子 我想得到的结果为 代码如下: pd.Series([set.intersection(*z) ...
- 在Java中获取两个数的中间值(超大数值)
//获取两个数的中间值(超大数值) public class MidValue {public static void main(String[] args) {method1();//两数相加后除二 ...
- java 返回两个集合_使用 java stream 获取两个集合之间的交集.差集
原始对象 List hrProbationMainList =new ArrayList(); List hrProbationMains = probationMainDao.findAll(); ...
- java 两个list 交集 并集 差集 去重复并集
去重并集 例如:求List1和List2的并集,并实现去重. 思路是:先将list中与list2重复的去掉,之后将list2的元素全部添加进去. public static void test1(Li ...
- JAVA取数两个数组交集,考虑重复和不重复元素
1.考虑不重复元素,重复元素不添加 import java.awt.List; import java.util.ArrayList; import java.util.TreeSet; public ...
最新文章
- 通信产业5G迭代,万亿机遇一触即发
- python脚本实例手机端-用Python实现自动化操作Android手机
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
- pat 乙级 1002 写出这个数(C++)
- 探秘亚洲最大单体智慧农园:探索改变农民“靠天吃饭”的农作模式
- php区分全角半角字符,php如何判断是字符串全角还是半角
- flutter图片预览_flutter - 图片预览放大滑动(photo_view)
- oracle零碎要点---oracle em的web访问地址忘了
- sqlite排序规则
- 容器 10 年,Docker 6 年
- 如何加密 Ubuntu 安装后的主文件夹
- 图像处理三:图像变形forward warping和inverse warping
- poj 1753 Flip Game (高斯消元 + 枚举 自由变量)
- Zipkin-1.19.0学习系列2:Nodejs范例(Client Send,Client Receive))
- MySQL和Navicat for MySQL下载及安装详细教程
- catia中的螺旋伞齿轮画法_使用CATIA绘制斜齿轮(直齿轮)得画法教程.doc
- 跳转指令JMP(04)和跳转结束指令JME(05)
- 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
- 社会排斥范式:通过Cyberball游戏来探索其中的机制
- 车牌首字母对应省份代码