Java之两个Set/List集合求并、交、差

/**
	 * function: 将两个集合{“a”,“b”,“c”,“d”,“e”}
	 * 和{“d”,“e”,“f”,“g”,“h”},把这两个集合去除重复项合并成一个,实现需求。
	 * author:wangpeng
	 * time:2018年8月15日上午10:23:27
	 */

//Set集合
	@Test
	public void test2() {
		String[] str1={"a","b","c","d","e"};
		String[] str2={"d","e","f","g","h"};
		
		Set<String> set1 = new HashSet<String>(Arrays.asList(str1));
		Set<String> set2 = new HashSet<String>(Arrays.asList(str2));
		Set<String> set = new HashSet<String>();
		
		// 并集
		set.addAll(set1);
		set.addAll(set2);
		System.out.println("并集" + set);

		// 交集
		set.clear();
		set.addAll(set1);
		set.retainAll(set2);
		System.out.println("交集" + set);
		// 差集
		set.clear();
		set.addAll(set1);
		set.removeAll(set2);
		System.out.println("差集" + set);	
        }
    //List集合
        @Test
	public void test3() {
		String[] str1 = { "a", "b", "c", "d", "e" };
		String[] str2 = { "d", "e", "f", "g", "h" };
		ArrayList<String> list1 = new ArrayList<String>(Arrays.asList(str1));
		ArrayList<String> list2 = new ArrayList<String>(Arrays.asList(str2));
		ArrayList<String> list = new ArrayList<String>();
		// 并集
		list.addAll(list1);
		for (int i = 0; i < list2.size(); i++) {
			if (!list.contains(list2.get(i)))
				list.add(list2.get(i));
		}
		System.out.println("并集" + list);

		// 交集
		list.clear();
		for (int i = 0; i < list2.size(); i++) {
			if (list1.contains(list2.get(i)))
				list.add(list2.get(i));
		}
		System.out.println("交集" + list);

		// 差集
		list.clear();
		for (int i = 0; i < list1.size(); i++) {
			if (!list2.contains(list1.get(i)))
				list.add(list1.get(i));
		}
		System.out.println("差集" + list);
	}


 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值