Java中多个集合的交集,并集和差集

Wesley13
• 阅读 961

一、交集

  java中交集使用 A.retainAll(B) ,交集的结果在集合A中。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 交集
 8  *
 9  * @author zhongtao on 2018/5/30
10  */
11 public class Intersection {
12     /**
13      * 测试简单交集
14      */
15     @Test
16     public void testSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23 
24         set2.add("c");
25         set2.add("d");
26         set2.add("e");
27 
28         //交集
29         set1.retainAll(set2);
30         System.out.println("交集是 " + set1);  //交集是 [c]
31     }
32 }

二、并集

  并集使用addAll,A.addAll(B) 因为set本身就去重,所有直接全部添加到一个集合中取并集。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 并集
 8  *
 9  * @author zhongtao on 2018/5/31
10  */
11 public class UnionSet {
12     /**
13      * 并集测试
14      */
15     @Test
16     public void testUnionSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23 
24         set2.add("b");
25         set2.add("c");
26         set2.add("d");
27 
28         set1.addAll(set2);
29         System.out.println("并集是" + set1); //并集是[a, b, c, d]
30     }
31 }

三、差集

  差集使用removeAll方法,去掉一集合中包含的另一个集合的值。A.removeAll(B)。

 1 import org.junit.Test;
 2 
 3 import java.util.HashSet;
 4 import java.util.Set;
 5 
 6 /**
 7  * 差集
 8  *
 9  * @author zhongtao on 2018/5/31
10  */
11 public class DifferenceSet {
12     /**
13      * 差集测试
14      */
15     @Test
16     public void testDifferenceSet() {
17         Set<String> set1 = new HashSet<>();
18         Set<String> set2 = new HashSet<>();
19 
20         set1.add("a");
21         set1.add("b");
22         set1.add("c");
23         set1.add("d");
24 
25         set2.add("c");
26         set2.add("d");
27         set2.add("e");
28         set2.add("f");
29 
30         set1.removeAll(set2);
31         System.out.println("差集是 " + set1); //差集是 [a, b]
32     }
33 }
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
java8 集合求差集、并集、交集
前言    java8里最大亮点是lambda,让我们用习惯Clinq的语法,也能眼前一亮。但是比起C的语法糖还是差的很远。差集、并集、交集@Testpublicvoidtest1(){List<Integerlist1newArrayList<();
Stella981 Stella981
2年前
Redis!
概述Redis是一个KeyValue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原
Stella981 Stella981
2年前
Redis安装与配置问题
Redis是一个keyvalue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基
Stella981 Stella981
2年前
Redis(一) String类型操作【存字符串、存数字】
什么是redis?  redis是一个keyvalue存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更
Stella981 Stella981
2年前
Linux下Redis的安装和部署
一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个keyvalue存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这