你的任务是先输出集合A和集合B中的元素,每个集合在一行中输出。然后每次在将集合B中的元素取出插入到集合A尾部后输出集合A中的元素。当然你的代码可以和上面的代码不一样,只要有相同的输出即可。
输入
有多组测试数据,每组测试数据占两行。第一行是集合A,第一个整数m(0<m<=100)代表集合A起始有m个元素,后面有m个整数,代表A中的元素。第二行是集合B,第一个整数n(0<n<=100)代表集合B起始有n个元素,后面有n个整数,代表B中的元素。每行中整数之间用一个空格隔开。
输出
每组测试数据输出n+2行:前两行分别输出集合A、集合B中的数据,后面n行是每次从B中取出元素插入到A尾部后的集合A。每行整数之间用一个空格隔开,每组测试数据之间用一行空行隔开。
样例输入
5 1 5 2 6 3 3 1 7 9 1 3 2 2 7 4 2 5 1 4 4 1 2 4 5样例输出
1 5 2 6 3 1 7 9 1 5 2 6 3 1 5 2 6 3 7 1 5 2 6 3 7 9 3 2 7 3 2 3 2 7 2 5 1 4 1 2 4 5 2 5 1 4 2 5 1 4 2 5 1 4 2 5 1 4
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
int n = in.nextInt();
Set<Integer> a = new LinkedHashSet<Integer>();
for (int i = 0; i < n; i++) {
a.add(in.nextInt());
}
int m = in.nextInt();
Set<Integer> b = new LinkedHashSet<Integer>();
for (int i = 0; i < m; i++) {
b.add(in.nextInt());
}
for (Integer aa : a) {
System.out.print(aa+" ");
}
System.out.println();
for (Integer bb : b) {
System.out.print(bb+" ");
}
System.out.println();
for (int i = 0; i <b.size(); i++) {
a.add((Integer) b.toArray()[i]);
for (Integer aa: a) {
System.out.print(aa+" ");
}
System.out.println();
}
System.out.println();
}
in.close();
}
}
思考:java中list 是有序可重复 set既可以有序也可以无序(之前一直误认为所有的set都是无序的)但是不重复
HashSet是无序的,他的顺序是按照哈希算法规定的,
LinkedHashSet 是按添加顺序的
TreeSet 是按自然顺序
set如何输出某一特定元素呢 利用set.toArray()[i]