java获取两个数据量较大的arraylist的交集、差集以及并集
时间: 2024-01-28 14:03:25 浏览: 73
可以使用Java中的Set集合来获取两个ArrayList的交集、差集以及并集。
1. 获取两个ArrayList的交集:
```java
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
// 添加元素到list1和list2中
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.retainAll(set2); // 获取两个集合的交集
List<Integer> intersectionList = new ArrayList<>(set1);
```
2. 获取两个ArrayList的差集:
```java
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
// 添加元素到list1和list2中
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.removeAll(set2); // 获取set1中与set2不同的元素
List<Integer> differenceList = new ArrayList<>(set1);
```
3. 获取两个ArrayList的并集:
```java
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
// 添加元素到list1和list2中
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.addAll(set2); // 获取两个集合的并集
List<Integer> unionList = new ArrayList<>(set1);
```
其中,将ArrayList转换为HashSet是为了方便进行集合操作,最后再将结果转换回ArrayList返回。
阅读全文