Java实现给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。 输入 第一行为一个整数n,表示集合A中的元素个数。 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。 第三行为一个整数m,表示集合B中的元素个数。 第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。 集合中的所有元素均为int范围内的整数,n、m<=1000。 输出 第一行按从小到大的顺序输出A、B交集中的所有元素。 第二行按从小到大的顺序输出A、B并集中的所有元素。 第三行按从小到大的顺序输出B在A中的余集中的所有元素。
时间: 2024-02-27 18:52:10 浏览: 124
好的,这是Java实现题目要求的代码:
```java
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] setA = new int[n];
for (int i = 0; i < n; i++) {
setA[i] = sc.nextInt();
}
int m = sc.nextInt();
int[] setB = new int[m];
for (int i = 0; i < m; i++) {
setB[i] = sc.nextInt();
}
// 交集
Set<Integer> inter = new HashSet<>();
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (setA[i] == setB[j]) {
inter.add(setA[i]);
break;
}
}
}
Integer[] interArr = inter.toArray(new Integer[0]);
Arrays.sort(interArr);
for (int i = 0; i < interArr.length; i++) {
System.out.print(interArr[i] + " ");
}
System.out.println();
// 并集
Set<Integer> union = new HashSet<>();
for (int i = 0; i < n; i++) {
union.add(setA[i]);
}
for (int i = 0; i < m; i++) {
union.add(setB[i]);
}
Integer[] unionArr = union.toArray(new Integer[0]);
Arrays.sort(unionArr);
for (int i = 0; i < unionArr.length; i++) {
System.out.print(unionArr[i] + " ");
}
System.out.println();
// B在A中的余集
Set<Integer> diff = new HashSet<>();
for (int i = 0; i < n; i++) {
boolean found = false;
for (int j = 0; j < m; j++) {
if (setA[i] == setB[j]) {
found = true;
break;
}
}
if (!found) {
diff.add(setA[i]);
}
}
Integer[] diffArr = diff.toArray(new Integer[0]);
Arrays.sort(diffArr);
for (int i = 0; i < diffArr.length; i++) {
System.out.print(diffArr[i] + " ");
}
System.out.println();
}
}
```
你只需按照题目要求输入A、B集合元素,代码就可以输出相应的结果。
阅读全文