2 个 List 集合数据求并、补集操作

本文介绍如何使用Java对两个List集合进行并集、相对补集等操作,并给出具体代码示例。适用于处理页面数据与数据库数据差异的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发过程中,我们可能需要对 2 个 或多个 List 集合中的数据进行处理,比如多个 List 集合数据求 相同元素,多个 List 集合数据得到只属于本身的数据,如图示:

这里写图片描述

这里以 2 个 List 介绍,有一些业务要求我们处理得到图上的 3 中情况
* 只属于 A
* 共同的元素
* 只属于 B

这种处理方式在数学上并不陌生,只属于 A ,相当于集合上 B 关于 A 的相对补集;相同的元素,A 和 B 的并集;只属于 B ,相当于集合上 A 关于 B 的相对补集。明白了这几个概念,下面我们就介绍 Java 代码该如何为实现,代码如下

  public static void test() {

    List<Integer> A = new ArrayList<Integer>();
    A.add(1);
    A.add(2);
    A.add(3);
    A.add(4);

    List<Integer> B = new ArrayList<Integer>();
    B.add(2);
    B.add(4);
    B.add(5);
    B.add(6);

    Collection C = new ArrayList<Integer>(A);
    C.retainAll(B);
    System.out.println("A 与 B 并集:" + C);

    B.removeAll(C);
    System.out.println("A 关于 B 的相对补集:" + B);

    A.removeAll(C);
    System.out.println("B 关于 A 的相对补集:" + A);

  }

运行该函数,得到结果如下:
这里写图片描述

  • 实际应用场景,我们开发中一般什么场合会用到这种处理呢,其实求并、补集实际开发过程中遇到机会还不少,比如,我们在页面对一个 List 数据进行了增删改操作,List 传输到后台之后,需要我们对修改之后的数据保存到数据库中,页面传输来的 数据 肯定和 数据库原先保存的数据不同, 我们要保证保存到数据库中的数据无误,就需要拿 页面传输的数据和数据库中数据进行比较,从而执行相应的增删改操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值