java求并集public static ArrayList<Integer> Union(ArrayList<Integer> list1, ArrayList<Integer> list2)
时间: 2025-01-05 07:37:19 浏览: 5
在Java中,求两个ArrayList整数集合的并集,可以使用`addAll()`方法将一个集合添加到另一个集合,然后再转换回ArrayList。这里是一个简单的示例:
```java
import java.util.ArrayList;
public static ArrayList<Integer> union(ArrayList<Integer> list1, ArrayList<Integer> list2) {
// 创建一个新的ArrayList用于存储结果
ArrayList<Integer> result = new ArrayList<>();
// 将list1的所有元素添加到result
result.addAll(list1);
// 如果list2还有元素,将其添加到result
if (!list2.isEmpty()) {
result.addAll(list2);
}
return result;
}
```
这个函数首先把`list1`的元素复制到结果列表,然后检查`list2`是否为空,如果不为空,则继续添加其所有元素到结果列表。最后返回包含两个集合所有唯一元素的结果集合。
相关问题
(合并两个列表)使用下面的方法头编写一个方法,返回两个数组列表的并集。 publ ic static ArrayList<Integer> union( ArrayList<Integer> listl, ArrayList<Integer> list2) 例如,两个数组列表{2,3,1,5}和{3,4,6}的并集为{2,3,1,5,3,4,6}编写测试程序,提示用户输入两个列表,每个列表有5个整数,然后显示它们的并集。输出中,以一个空格进行分隔。下面是一个运行示例: Enter five integers for list1: 3 5 45 4 3 Enter five integers for list2: 33 51 5 4 13 The combined list is 3 5 45 4 3 33 51 5 4 13
以下是实现上述功能的 Java 代码:
```
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Prompt the user to enter two lists
System.out.print("Enter five integers for list1: ");
ArrayList<Integer> list1 = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list1.add(input.nextInt());
}
System.out.print("Enter five integers for list2: ");
ArrayList<Integer> list2 = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list2.add(input.nextInt());
}
// Find the union of the two lists
ArrayList<Integer> unionList = union(list1, list2);
// Display the combined list
System.out.print("The combined list is ");
for (int i = 0; i < unionList.size(); i++) {
System.out.print(unionList.get(i) + " ");
}
}
public static ArrayList<Integer> union(ArrayList<Integer> list1, ArrayList<Integer> list2) {
ArrayList<Integer> unionList = new ArrayList<>();
// Add elements of list1 to the union list
for (int i = 0; i < list1.size(); i++) {
unionList.add(list1.get(i));
}
// Add elements of list2 to the union list if they are not already in it
for (int i = 0; i < list2.size(); i++) {
int num = list2.get(i);
if (!unionList.contains(num)) {
unionList.add(num);
}
}
return unionList;
}
}
```
运行示例:
```
Enter five integers for list1: 3 5 45 4 3
Enter five integers for list2: 33 51 5 4 13
The combined list is 3 5 45 4 33 51 13
```
已知两个集合 List<Integer> list1 = new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); List<Integer> list2 = new ArrayList<Integer>(); list2.add(2); list2.add(3); list2.add(4); 请通过代码输出 两个集合的交集、并集 list1对list2的补集
你可以使用Java的集合操作来计算两个集合的交集、并集和补集。下面是一段示例代码,可以实现这些操作:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class SetOperations {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<Integer>();
list2.add(2);
list2.add(3);
list2.add(4);
// 交集
List<Integer> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
System.out.println("交集: " + intersection);
// 并集
Set<Integer> union = new HashSet<>(list1);
union.addAll(list2);
System.out.println("并集: " + union);
// list1对list2的补集
List<Integer> complement = new ArrayList<>(list1);
complement.removeAll(list2);
System.out.println("list1对list2的补集: " + complement);
}
}
```
运行以上代码,你将会得到以下输出:
```
交集: [2, 3]
并集: [1, 2, 3, 4]
list1对list2的补集: [1]
```
这样,你就可以得到两个集合的交集、并集和list1对list2的补集了。希望能对你有所帮助!如果还有其他问题,请继续提问。
阅读全文