如果存在两个集合,在java中如何快速的取它们的交集、并集这些操作呢?
1.先给出两个List集合

List listA = new ArrayList();
List listB = new ArrayList();
listA.add(“A”);
listA.add(“B”);
listB.add(“B”);
listB.add(“C”);

2.取交集

listA.retainAll(listB);
System.out.println(listA);

打印结果:
[B]

3.取并集

// 不做第一步取的是有重复元素的并集
listA.removeAll(listB);
listA.addAll(listB);
System.out.println(listA);

打印结果:
[A, B, C]

4.取差集

listA.removeAll(listB);
System.out.println(listA);

打印结果:
[A]

5.List中数据为对象,而不是基本数据类型
上面使用的是java的基本数据类型,如果不是基本数据类型,我们可以重写类中的方法,如下所示:
(1)首先创建一个类作为List中的泛型类型:
User.java

package com.list;

public class User {
private String id;
private String name;

public User(String id, String name) {this.id = id;this.name = name;
}public String getId() {return id;
}
public void setId(String id) {this.id = id;
}
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}@Override
public boolean equals(Object obj) {User u = (User) obj;return id.equals(u.getId()) && name.equals(u.getName());
}@Override
public int hashCode() {return id.hashCode();
}

}

(2)取无重复并集操作:

public class RemoveRepetition {
public static void main(String[] args) {
List listA = new ArrayList();
List listB = new ArrayList();

    User user1 = new User("1", "a");User user2 = new User("2", "b");User user3 = new User("3", "c");listA.add(user1);listA.add(user2);listB.add(user2);listB.add(user3);listA.removeAll(listB);listA.addAll(listB);for(User u : listA) {System.out.println(u.getId() + ":" + u.getName());}
}

}

打印结果:
1:a
2:b
3:c

(3)取交集操作

public class RemoveRepetition {
public static void main(String[] args) {
List listA = new ArrayList();
List listB = new ArrayList();

    User user1 = new User("1", "a");User user2 = new User("2", "b");User user3 = new User("3", "c");listA.add(user1);listA.add(user2);listB.add(user2);listB.add(user3);listA.retainAll(listB);for(User u : listA) {System.out.println(u.getId() + ":" + u.getName());}
}

}

打印结果:
2:b

list集合交集,并集相关推荐

  1. STL 算法vector/set集合-交集,并集,差集,对称差

    针对这里提及的四个集合运算必须特别注意:  1.第一个算法需保证第一集合和第二集合有序,并从小到大排序,内部使用默认"<"操作符比较元素大小: 2.第二个算法需保证第一集合和 ...

  2. c++链表实现集合交集并集差集运算

    #include<iostream> using namespace std; //创建链表 struct Node {     int content;     Node* next; ...

  3. c语言链表集合求并集用字母表示,c语言实现的链表集合的并集与交集

    c语言,链表,集合求并集,交集 #include #include typedefintDatatype; //定义链表的节点 typedefstructLNode{ Datatype data; L ...

  4. 集合去重,取交集并集差值

    最好的方式是用set集合做并集,CollectionUtils封装,union底部用hashmap取值存入hashSet中,去重 // 两个集合合并成并去重 public void mergeSet( ...

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

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

  6. 7-2 求集合的并集、交集、差集、笛卡尔积(PTA)

    第一题:求补集 题目要求: 编写程序求两个集合的并集,程序运行时,输入集合A的元素个数(不大于50)和元素(int型),再输入集合B的元素个数(不大于50)和元素(int型),计算并输出集合C的元素, ...

  7. 27.python中的集合:求集合的交集、求集合的并集;竖杠 ”|“ 也表示并集、update()更新并集结果、集合的差集、集合的判定

    # 求集合的交集 # s1 = {'1', '2', '3', 4} # s2 = {1, 4, 5, 6} # result = s1.intersection(s2) # 注意:intersect ...

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

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

  9. A和B 单链表表示 集合,求其 交集 并集 差集

    A和B 单链表表示 集合的 交集 并集 差集 /* A和B 单链表表示 集合的 交集 并集 差集 */ //#include <iostream> //using namespace st ...

  10. Python绘制韦恩图并通过集合找到交集并集数据

    matplotlib_venn库里支持venn2和venn3,以venn3为例绘图: venn中包含venn2-venn6,以venn4为例绘图. 安装库:pip install matplotlib ...

最新文章

  1. 初窥CSRF攻击方式以及Flask-WTF
  2. 函数的梯度方向和切线方向_高数下微课:11.3_5 二元函数的全微分求积
  3. 解读晦涩的存储技术缩略语
  4. react 最佳实践_最佳React教程
  5. 红帽为开发订阅成员提供的免费福利
  6. 软件测试和软件质量保证的关系是什么,软件测试与软件质量关系的概述
  7. 矩阵的转置与求导运算
  8. 企业数据架构和集成架构规划方案(PPT)
  9. 我们为你精选了一份Jupyter/IPython笔记本集合 !(附大量资源链接)-上篇
  10. microsoft bing browser advance search
  11. 16组Sony索尼系列相机Slog2和Slog3常用Vlog电影LTUS调色预设 Slog2 Slog3视频灰片调色预设
  12. Coursera | Python for Everybody专项课程
  13. 在VMware上如何创建虚拟机并安装linux操作系统,以及虚拟机的账户密码破解
  14. 微信小程序setData的使用
  15. 高斯白噪声及Matlab常用实现方法
  16. mysql - database/数据库
  17. linux centos7 系统内核参数调优
  18. 1x pcie 引脚_PCIe 接口 引脚定义 一览表
  19. buuctf-misc-[SWPU2019]神奇的二维码1
  20. 那么辛苦的熬单片机,不拿它DIY点小玩意怎么对得起自己。

热门文章

  1. 解读即将施行的《网络安全审查办法》,开发者需要注意的
  2. python汇率换算程序_编写python程序,解决公里与英里转换问题,要求输入英里数,计算出相应的公里数...
  3. 读书笔记都应该写成这样才牛叉!
  4. Jquery中$(document).ready()的作用
  5. 5月12~15在青岛
  6. python模拟鼠标键盘点击,简单自动化动物餐厅
  7. 懒人畅听网,有声小说类目数据采集,多线程速采案例,Python爬虫120例之23例
  8. 设置cookies过期时间的几种方法(cookies随浏览器关闭而失效的方法)
  9. 从“住”到“行” 恒大投资NEVS的背后逻辑 | 一点财经
  10. SIFT介绍与matlab+VL_feat实现