BUPT JAVA: 集合运算

集合运算

题目描述:

给出两个整数集合 A, B, 求出他们的交集, 并集以及B在A中的余集。

输入:

第一行为一个整数 n, 表示集合 A 中的元素个数.
第二行有 n 个互不相同的用空格隔开的整数, 表示集合 A 中的元素.
第三行为一个整数 m, 表示集合 B 中的元素个数.
第四行有 m 个互不相同的用空格隔开的整数, 表示集合 B 中的元素.
集合中的所有元素均为 int 范围内的整数, $ n, m \leq 1000 $.

输出:

第一行按从小到大的顺序输出 A, B 交集中的所有元素.
第二行按从小到大的顺序输出 A, B 并集中的所有元素.
第三行按从小到大的顺序输出 B 在 A 中的余集中的所有元素.

输入样例:

1
2
3
4
5
1 2 3 4 5
5
2 4 6 8 10

输出样例:

1
2
3
2 4
1 2 3 4 5 6 8 10
1 3 5

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 集合运算
// 2023/05/22

import java.util.HashMap;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
public static void main(String[] args) {
var input = new Scanner(System.in);

var n = input.nextInt();
var A = new TreeSet<Integer>();
for (int i = 0; i < n; i++)
A.add(input.nextInt());

var m = input.nextInt();
var B = new TreeSet<Integer>();
for (int i = 0; i < m; i++)
B.add(input.nextInt());

var res = new TreeSet<Integer>();
res.addAll(A);
res.retainAll(B);

for (Integer i : res)
System.out.print(i + " ");
System.out.println();

res.clear();
res.addAll(A);
res.addAll(B);
for (Integer i : res)
System.out.print(i + " ");
System.out.println();

res.clear();
res.addAll(A);
res.removeAll(B);
for (Integer i : res)
System.out.print(i + " ");
}
}
2023-05-22 
IP属地: 北京

BUPT JAVA: 集合运算
https://dengwuli.github.io/2023/05/22/BUPT_JAVA/集合运算/
作者
DengWuLi
发布于
2023年5月22日
更新于
2023年7月14日
许可协议