java从标准中输入两组整数(每行不超过20个,每组元素不重复)求两组整数的异或集(合并两组整数,去掉两组整数中都出现的整数形成的集合)和交集,并按从大到小的顺序排列
时间: 2023-06-11 17:10:02 浏览: 105
以下是Java代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取第一组整数
Set<Integer> set1 = new HashSet<>();
String line1 = scanner.nextLine();
String[] nums1 = line1.split(" ");
for (String num : nums1) {
set1.add(Integer.parseInt(num));
}
// 读取第二组整数
Set<Integer> set2 = new HashSet<>();
String line2 = scanner.nextLine();
String[] nums2 = line2.split(" ");
for (String num : nums2) {
set2.add(Integer.parseInt(num));
}
// 求异或集
Set<Integer> xorSet = new HashSet<>();
xorSet.addAll(set1);
xorSet.addAll(set2);
Set<Integer> intersection = new HashSet<>(set1);
intersection.retainAll(set2);
xorSet.removeAll(intersection);
// 按从大到小排序
List<Integer> resultList = new ArrayList<>(xorSet);
Collections.sort(resultList, Collections.reverseOrder());
// 输出结果
System.out.println("异或集:");
for (int num : resultList) {
System.out.print(num + " ");
}
System.out.println();
System.out.println("交集:");
for (int num : intersection) {
System.out.print(num + " ");
}
System.out.println();
}
}
```
示例输入:
```
1 3 5 7 9 11
2 4 6 8 10
```
示例输出:
```
异或集:
11 10 9 8 7 6 5 4 3 2 1
交集:
```
解释:两组整数没有重复元素,因此交集为空集,异或集为两组整数合并后去掉交集中的元素。按从大到小排序后输出。
阅读全文