练习题19:集合

题目描述

给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。

输入描述:

每组输入数据分为三行,第一行有两个数字n,m(0 ≤ n,m ≤ 10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B。每个元素为不超过int范围的整数,每个元素之间有个空格隔开。

输出描述:

针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开,行末无空格。

Java解法:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.TreeSet;

public class test10 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// String [] str = br.readLine().trim().split(" "); // 读取第一行的数据
// int lengthA = Integer.parseInt(str[0]); // 表示A集合的长度
// int lengthB = Integer.parseInt(str[1]); // 表示B集合的长度
br.readLine();
String [] dataA = br.readLine().trim().split(" "); // 读取到A集合
String [] dataB = br.readLine().trim().split(" "); // 读取到B集合
System.out.println(deal(dataA, dataB));
}

private static String deal(String[] dataA, String[] dataB) {
TreeSet<Integer> treeSet = new TreeSet<>();
for (String strTemp : dataA) {
treeSet.add(Integer.parseInt(strTemp)); // 将指定的元素添加到此 set(如果该元素尚未存在于 set 中)。
}
for (String strTemp : dataB) {
treeSet.add(Integer.parseInt(strTemp));
}

StringBuilder sb = new StringBuilder();
Iterator<Integer> iterator = treeSet.iterator();
while (iterator.hasNext()) {
sb.append(iterator.next());
sb.append(" ");
}
return (sb.toString().trim());
}
}

猜你喜欢

转载自www.cnblogs.com/HwyStudy/p/9216317.html