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

一、交集

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

1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 交集 8 8 * 9 9 * @author zhongtao on 2018/5/30 1010 */ 1111 public class Intersection { 1212 /** 1313 * 测试简单交集 1414 */ 1515 @Test 1616 public void testSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 2424 set2.add("c"); 2525 set2.add("d"); 2626 set2.add("e"); 2727 2828 //交集 2929 set1.retainAll(set2); 3030 System.out.println("交集是 " + set1); //交集是 [c] 3131 } 3232 }

二、并集

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

1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 并集 8 8 * 9 9 * @author zhongtao on 2018/5/31 1010 */ 1111 public class UnionSet { 1212 /** 1313 * 并集测试 1414 */ 1515 @Test 1616 public void testUnionSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 2424 set2.add("b"); 2525 set2.add("c"); 2626 set2.add("d"); 2727 2828 set1.addAll(set2); 2929 System.out.println("并集是" + set1); //并集是[a, b, c, d] 3030 } 3131 }

三、差集

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

1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 差集 8 8 * 9 9 * @author zhongtao on 2018/5/31 1010 */ 1111 public class DifferenceSet { 1212 /** 1313 * 差集测试 1414 */ 1515 @Test 1616 public void testDifferenceSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 set1.add("d"); 2424 2525 set2.add("c"); 2626 set2.add("d"); 2727 set2.add("e"); 2828 set2.add("f"); 2929 3030 set1.removeAll(set2); 3131 System.out.println("差集是 " + set1); //差集是 [a, b] 3232 } 3333 }
点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java8 集合求差集、并集、交集

前言    java8里最大亮点是lambda,让我们用习惯Clinq的语法,也能眼前一亮。但是比起C的语法糖还是差的很远。差集、并集、交集@Testpublicvoidtest1(){List<Integerlist1newArrayList<();

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Redis!

概述Redis是一个KeyValue存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原