集合union

你的任务是先输出集合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]

发布了81 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41499217/article/details/104378274