面试场景:

之前遇到一个长得很有趣的面试官问两个集合怎么求他们的交集、并集、茶集,回答之后觉得非常有意思,在这里记录一下:


概念说明

一、交集

交集:两个集合的公共(相交)部分,如下图:

代码案例:

集合A:{阿福,张飞,李白,鲁班}
集合B:{诸葛亮,李白,马超}
交集:{李白}

public class CollectionTest {public static void main(String[] args) {List<String> collectionA = new ArrayList<>();List<String> collectionB = new ArrayList<>();Collections.addAll(collectionA, "阿福", "张飞", "李白", "鲁班");Collections.addAll(collectionB, "诸葛亮", "李白", "马超");//求交集collectionA.retainAll(collectionB);collectionA.forEach(System.out::println);}
}
collectionA.retainAll(collectionB);

Collection.retainAll()方法方法是在指定集合A中,通过迭代器遍历集合A的元素,只留下包含集合B的元素,其他元素都删除。

运行结果:


二、并集

并集:两个集合的合并的整个部分,如下图:

代码案例:

集合A:{阿福,张飞,李白,鲁班}
集合B:{诸葛亮,李白,马超}
交集:{阿福,张飞,李白,鲁班,诸葛亮,李白,马超}

public class CollectionTest {public static void main(String[] args) {List<String> collectionA = new ArrayList<>();List<String> collectionB = new ArrayList<>();Collections.addAll(collectionA, "阿福", "张飞", "李白", "鲁班");Collections.addAll(collectionB, "诸葛亮", "李白", "马超");//求并集collectionA.addAll(collectionB);collectionA.forEach(System.out::println);}
}

运行结果:


三、差集

差集:两个集合排除相同的剩余部分,如下图:

代码案例:

集合A:{阿福,张飞,李白,鲁班}
集合B:{诸葛亮,李白,马超}
差集:{阿福,张飞,鲁班,诸葛亮,马超}

public class CollectionTest {public static void main(String[] args) {List<String> collectionA = new ArrayList<>();List<String> collectionB = new ArrayList<>();Collections.addAll(collectionA, "阿福", "张飞", "李白", "鲁班");Collections.addAll(collectionB, "诸葛亮", "李白", "马超");//求差集List<String> copyCollectionA = new ArrayList<>(collectionA);collectionA.removeAll(collectionB);collectionB.removeAll(copyCollectionA);collectionA.addAll(collectionB);collectionA.forEach(System.out::println);}
}

运行结果:


【分享】Java集合求交集、并集、差集相关推荐

  1. JAVA Hashset求集合的交集并集差集

    JAVA Hashset求集合的交集并集差集 Hashset是Set接口较为常见的一个子类,该子类的最大特点是不允许保存重复的元素,并且所有的内容都采用散列(无序)的方式进行存储. package c ...

  2. oracle 并集 时间_Oracle集合运算符 交集 并集 差集

    集合运算符:UNION/UNION ALL 并集,INTERSECT 交集,MINUS 差集 一.union求并集,公共部分只有包含一次 例:求emp表ename中含'A'或含有'M' SQL> ...

  3. MySQL求交集 并集 差集

    MySQL求交集 并集 差集 交集 两个表之间相同的 并集 两个表之间的总和 ps: union 自带去重 差集 两个表直接的差值

  4. sort求交集并集差集

    uniq -u    取出只出现过一次的元素,用来求差集 uniq -c     group by uniq -d     取出出现次数大于等于2的元素,用来求交集 sort 1 2 和cat 1 2 ...

  5. 大数据集合求交集_Java8 实现ArrayList求交集并集差集

    本文借助Java8的Stream API完成ArrayList集合运算:求交集.并集和差集! public class CollectionUtil {/*** 判断为空*/public static ...

  6. python集合的交集并集差集对称差集操作

    补一下数学基础 集合间的数学操作交集: 调用函数intersection()或者 & ,原集合不发生变化并集: 调用函数union() 或者 | ,原集合不发生变化差集: 调用函数differ ...

  7. java两map取交集_Java Map 求交集 并集 差集

    import com.google.common.collect.MapDifference; import com.google.common.collect.Maps; import java.u ...

  8. 63.集合之交集并集差集

    set1 = {2, 3, 6, 7, 9, 11, 12, 13, 15, 19} # 其他:符号操作 print(6 in set1) set2 = {2,3,4,5,6} set3 = {2,3 ...

  9. 【HDU - 1968】【UVA - 12096】The SetStack Computer (模拟,集合求交集并集操作,STL实现)

    题干: Background from Wikipedia: 揝et theory is a branch of mathematics created principally by the Germ ...

最新文章

  1. 计算机维修实训室制度,计算机实训室规章制度
  2. 【编译原理】关于文法形式化定义的探索
  3. SAP手工传输TP使用方法
  4. textarea 通过 json在各浏览器的显示回车换行的问题
  5. java绘制_Java 绘制简单图形的问题
  6. 程序员必须知道的10大算法(转)
  7. VB:常用内部函数大全,你会了几个呢?
  8. ip-sysctl.txt 文件
  9. 看完这篇你就懂了深度学习的具体流程和代码该怎么写了!(Deep Learning Onramp)
  10. c++采集声卡输出_使用Core Audio实现对声卡输出的捕捉
  11. 三菱 PLC通讯 MX-Component5.0 官方demo
  12. c++11 日期和时间工具(std::chrono::duration)(三)
  13. 如何下载安装chrome扩展程序
  14. WPF开发经验-实现Win10虚拟触摸键盘
  15. 免费教程《Excel VBA:办公自动化》
  16. 框架指针省略(Frame Pointer Omission)(FPO)
  17. python编程之美pdf_GitHub - Farolding/toPdf: 爬取“Python编程之美:最佳实践指南”制作PDF电子书...
  18. 在其他国家被揭穿骗子又盯上非洲? 这几个骗子公司可把非洲人民坑苦了……...
  19. 浏览器页面性能分析指南(chrome)
  20. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java速到校园网上订餐网站5n2pv

热门文章

  1. 游泳池改造预算 -- PTA
  2. STM32F103ZET6+IIC+BH1750光照强度传感
  3. JavaScript——ES10新特性
  4. 基于卷积神经网络的CSI步态信息研究(附源码地址)
  5. 基于php730智通在线手机销售系统-计算机毕业设计
  6. 矩形脉冲信号得matlab,矩形脉冲信号的频域分析_矩形周期脉冲信号MATLAB实现
  7. 51单片机---定时器
  8. 当孩子说我不想做作业,你会怎么办呢?
  9. 后量子 KEM 方案:Newhope
  10. SecureCRT中文乱码解决