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. React Learning Paths

    React Learning Paths React Expert React in Action The assessment may cover: Components Events and Bi ...

  2. Make one your own Online Video Recorder by using WebRTC & vanilla javascript

    Make one your own Online Video Recorder by using WebRTC & vanilla javascript Online Video Record ...

  3. Github & DMCA Takedown & git remove history

    Github & DMCA Takedown & git remove history Github & DMCA Takedown Policy Removing files ...

  4. NGK高效的背后驱动力是社区发展

    社区是公有链生态系统中最重要的部分,如果开发了区块链应用或工具,却没有用户使用,那将毫无价值.因此对公链项目来说首先需要构建用户群,并深入研究用户群体的需求.就目前而言,任何项目都需要社区力量加入项目 ...

  5. NGK Baccarat流动性挖矿打造DeFi新风口

    2020年,DEFI成为了区块链领域最热门的概念之一.它就像乐高积木,将原来的金融模块,以不同的智能合约来实现.智能合约又以全新的方式将不同的金融功能拼接在一起,以创造出全新的金融产品. NGK.IO ...

  6. 《Effective Java》总结

    导语 <Effective Java>是和<Thinking in java>齐名的java进阶书籍.作者参与了JDK标准库的编写工作,对于此书的学习,让我收获很多.好记性不如 ...

  7. 无情面试官之包含min函数的栈

    0 我是一个无情的面试官. 面人无数,挂人无数. 若想过我的面试,标准只有一个,那就是公司很缺人. 招新人,填旧坑. 1 今天是我的第1001次当面试官,要求却不是千里挑一,而是一击必中. 因为我招聘 ...

  8. 死磕Spring之IoC篇 - 解析自定义标签(XML 文件)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  9. arch 安装笔记

    arch- 第一次装archLinux时,照着别人的安装教程来安装,由于不懂有些命令的意思,装了好几次才成功,这次趁着热乎,把安装的步骤写下来,为自己踩踩坑(桌面是xfce,下面也有换桌面的方法,我第 ...

  10. Web微信协议

    [文档]Web微信协议 1.登录 1.1 获取uuid(get) 请求 https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&red ...