java从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集“异或”
时间: 2024-06-13 21:03:47 浏览: 106
这道题目可以使用Java中的Set集合来实现。首先,我们可以使用Scanner类从标准输入中读取两组整数,然后将它们分别存储到两个Set集合中。接着,我们可以使用Set集合的retainAll()方法来获取两个集合的交集,然后使用Set集合的removeAll()方法来移除两个集合的交集。最后,我们可以将剩余的元素存储到一个List集合中,并使用Collections.sort()方法对List集合进行排序,最终按从大到小的顺序输出所有元素。
下面是Java代码实现:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
List<Integer> list = new ArrayList<>();
// 读取第一组整数
String[] nums1 = scanner.nextLine().split(" ");
for (String num : nums1) {
set1.add(Integer.parseInt(num));
}
// 读取第二组整数
String[] nums2 = scanner.nextLine().split(" ");
for (String num : nums2) {
set2.add(Integer.parseInt(num));
}
// 获取两个集合的交集
Set<Integer> intersection = new HashSet<>(set1);
intersection.retainAll(set2);
// 移除两个集合的交集
set1.removeAll(intersection);
set2.removeAll(intersection);
// 将剩余的元素存储到List集合中
list.addAll(set1);
list.addAll(set2);
// 对List集合进行排序
Collections.sort(list, Collections.reverseOrder());
// 输出结果
for (Integer num : list) {
System.out.print(num + " ");
}
}
}
```
阅读全文