用java求两个大集合的交集,并集,差集
时间: 2023-12-24 18:44:47 浏览: 109
假设两个集合分别为set1和set2,可以使用Java的集合操作实现交集、并集和差集:
1. 交集:
```java
Set<Integer> intersection = new HashSet<>(set1);
intersection.retainAll(set2);
```
2. 并集:
```java
Set<Integer> union = new HashSet<>(set1);
union.addAll(set2);
```
3. 差集:
```java
Set<Integer> difference = new HashSet<>(set1);
difference.removeAll(set2);
```
其中,Set是Java集合框架中的一种接口,HashSet是Set接口的一种实现。上述代码中,使用了HashSet的构造函数创建了新的集合对象,然后分别使用retainAll()、addAll()和removeAll()方法实现了交集、并集和差集操作。这些方法会直接修改当前集合对象,而不会创建新的集合对象。最终得到的结果集合可以遍历输出或者进行其他操作。
相关问题
集合 交集 并集 差集
交集是指两个集合中都存在的元素。
并集是指两个集合中所有的元素的组合。
差集是指一个集合中存在而另一个集合中不存在的元素。
在Java中,可以使用Set集合的相关方法来求集合的交集、并集和差集。
交集可以使用retainAll方法来实现:
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");
set2.add("c");
set2.add("d");
set2.add("e");
set1.retainAll(set2);
System.out.println("交集是 " + set1);
并集可以使用addAll方法来实现:
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");
set2.add("c");
set2.add("d");
set2.add("e");
set1.addAll(set2);
System.out.println("并集是 " + set1);
差集可以使用removeAll方法来实现:
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c");
set2.add("c");
set2.add("d");
set2.add("e");
set1.removeAll(set2);
System.out.println("差集是 " + set1);
java 两个list取差集 并集 差集
在 Java 中,可以通过集合框架中的 Set 接口来实现两个 List 的取差集、并集和交集操作。
对于两个 List 取并集,可以先将一个 List 加入到 Set 中,然后再将另一个 List 的元素加入到 Set 中。这样就可以去掉重复元素,得到两个 List 的并集。
对于两个 List 取交集,同样可以先将一个 List 加入到 Set 中,然后再遍历另一个 List,将其元素与 Set 中的元素比较,如果相同就将其加入到另一个 Set 中,最后得到的就是两个 List 的交集。
对于两个 List 取差集,可以先将一个 List 加入到 Set 中,然后再遍历另一个 List,将其元素从 Set 中移除,最后得到的就是两个 List 的差集。
下面是示例代码:
```
import java.util.*;
public class Test {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
// 求并集
Set<Integer> union = new HashSet<>(list1);
union.addAll(list2);
System.out.println("并集:" + union);
// 求交集
Set<Integer> intersection = new HashSet<>(list1);
intersection.retainAll(list2);
System.out.println("交集:" + intersection);
// 求差集
Set<Integer> difference = new HashSet<>(list1);
difference.removeAll(list2);
System.out.println("差集:" + difference);
}
}
```
阅读全文