List集合求交集 并集 差集

两种方法求集

Set集合

交集 两个集合中有相同的元素 抽取出来的数据就是为交集

@Test
public void testSet1(){
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c"); set2.add("c");
set2.add("d");
set2.add("e");
// 交集
set1.retainAll(set2);
System.out.println("交集是" + set1); // 交集是 c
}

并集 两个集合中去掉重复的数据就是并集

@Test
public void testSet2(){
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c"); set2.add("c");
set2.add("d");
set2.add("e");
// 并集
set1.addAll(set2);
System.out.println("并集是" + set1); // 并集是[a b c d e]
}

差集 第一个集合中的数据在第二个集合中有重复时,去掉重复数据的第一个集合就是差集

@Test
public void testSet3(){
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
set1.add("a");
set1.add("b");
set1.add("c"); set2.add("c");
set2.add("b");
set2.add("e");
// 差集
set1.removeAll(set2);
System.out.println("差集是" + set1); // 差集是 a b 去掉set1中属于set2的元素
}

Java8最大的亮点就是lambda表达式

Lambda表达式

@Test
public void test1(){
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3); List<Integer> list2 = new ArrayList<>();
list2.add(3);
list2.add(4);
list2.add(5);
System.out.println("==========求交集==========");
List<Integer> list = list1.stream().filter(t->list2.contains(t)).collect(Collectors.toList());
list.stream().forEach(System.out::println); System.out.println("==========求差集==========");
list = list1.stream().filter(t-> !list2.contains(t)).collect(Collectors.toList());
list.stream().forEach(System.out::println); System.out.println("==========求并集==========");
list.addAll(list1);
list.addAll(list2);
list = list.stream().distinct().collect(Collectors.toList());
list.stream().forEach(System.out::println);
}

List集合中的交集 并集和差集的更多相关文章

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

    一.交集 java中交集使用 A.retainAll(B) ,交集的结果在集合A中. import org.junit.Test; import java.util.HashSet; import j ...

  2. Sql Server中集合的操作(并集、差集、交集)学习

    首先我们做一下测试数据 1.创建测试数据 --创建人员表1-- create table Person1 ( Uid ,) primary key, Name ) not null ) --创建人员表 ...

  3. python中对两个 list 求交集,并集和差集

    python中对两个 list 求交集,并集和差集: 1.首先是较为浅白的做法: >>> a=[1,2,3,4,5,6,7,8,9,10] >>> b=[1,2,3 ...

  4. 【Sets】使用Google Guava工程中Sets工具包,实现集合的并集/交集/补集/差集

    获取两个txt文档的内容~存储进集合中求集合的并集/交集/补集/差集 package com.sxd.readLines.aboutDB; import java.io.BufferedReader; ...

  5. sql 查询 一张表里面的数据 在另一张表中是否存在 和 比对两个集合中的差集和交集(原创)

    这两天在搞一个修复的小功能 需求: A表,B表,C表,日志文件 先筛选出A表和B表中都符合条件的数据,然后检查这些数据在C表中是否存在.如果不存在,就从日志中读取数据,存入C表中,如果存在,则不做操作 ...

  6. 集合运算—union(并集)、intersect(交集)和except(差集)

    一.集合运算的基本格式是: 集合查询1 <集合运算> 集合查询2 [order by ...] 二.集合运算符是对两个集合操作的,两个集合必须具有相同的列数,列具有相同的数据类型(至少能隐 ...

  7. python 集合比较(交集、并集,差集)集合方法大全

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  8. python 集合比较(交集、并集,差集)

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  9. python集合set,交集,并集,差集,对称差集,子集和超集

    python集合set,交集,并集,差集,对称差集,子集和超集 x = {1, 2, 3, 4} y = {2, 4, 5, 6} # 交集(取x中与y中相同部分) print(x.intersect ...

随机推荐

  1. GreenSock & SVG Animation

    GreenSock & SVG Animation refs https://greensock.com/ https://greensock.com/learning/ GSAP https ...

  2. node.js delete directory & file system

    node.js delete directory & file system delete a not empty directory https://nodejs.org/api/fs.ht ...

  3. Apache HTTP Server & WS (websockets)

    Apache HTTP Server & WS (websockets) Apache HTTP Server Version 2.4 https://httpd.apache.org/doc ...

  4. how to open a terminal in finder folder of macOS

    how to open a terminal in finder folder of macOS shit service demo refs https://lifehacker.com/launc ...

  5. js 创建XML

    // 创建xml数据 let doc = document.implementation.createDocument('', 'root', null); // 创建一个文档 let root =d ...

  6. ts 交集类型

    type Event = { name: string; dateCreated: string; type: string; } // error type UserEvent extends Ev ...

  7. Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  8. Kubernetes 实战 —— 01. Kubernetes 介绍

    简介 P2 Kubernetes 能自动调度.配置.监管和故障处理,使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维团队的帮助. Kubernetes 同时能让运维团队监控整个系统,并且在硬 ...

  9. go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, &quo ...

  10. mysql 单表下的字段操作_查询

    查询的规律 查询语句限定条件越多,查询范围越小: 1.整个表 Select * From 库名.表名 2.整个表的某字段内 Select id From 库名.表名 3.整个表某字段的范围内 Sele ...