List 差集

文章目录

基本类型

ListUtils.subtract 方法用于计算两个集合的差集,即返回 list1 中有但 list2 中没有的元素。

其中,list1 指向第一个集合,list2 指向第二个集合。该方法返回一个新的 List 对象,它包含所有在 list1 中,但不在 list2 中的元素。

以下是使用 ListUtils.subtract 方法的示例代码:

List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> diff = ListUtils.subtract(list1, list2);
System.out.println("List1: " + list1); // [1, 2, 3, 4, 5]
System.out.println("List2: " + list2); // [3, 4, 5, 6, 7]
System.out.println("Diff: " + diff);   // [1, 2]

在上面的示例中,我们使用 ListUtils.subtract 方法计算了两个整数列表的差集。具体来说,我们创建了两个列表 list1list2,它们有一些相同的元素(即3、4和5)。然后,我们使用 ListUtils.subtract 方法计算 list1list2 的差集,并将结果存储在 diff 变量中。输出结果表明,diff 中包含了 list1 中有但 list2 中没有的元素 1 和 2。

需要注意的是,ListUtils.subtract 方法返回的是一个新的 List 对象,并不会修改原始的列表。

对象类型

public class MyClass {
   
    private String name;
    private int value;

    // 省略构造方法和其他方法

    // 省略getter和setter方法
}

// 创建包含自定义对象的列表
List<MyClass> list1 = new ArrayList<>();
list1.add(new MyClass("A", 1));
list1.add(new MyClass("B", 2));
list1.add(new MyClass("C", 3));

List<MyClass> list2 = new ArrayList<>();
list2.add(new MyClass("B", 2));
list2.add(new MyClass("C", 3));
list2.add(new MyClass("D", 4));

// [{"name":"A","value":1}]
List<MyClass> diff1 = ListUtils.subtract(list1, list2);
// [{"name":"D","value":4}]
List<MyClass> diff2 = ListUtils.subtract(list2, list1);

在这个示例中,我们有两个包含自定义对象 MyClass 的列表 list1list2。我们使用 ListUtils.subtract 方法计算了这两个列表的差集,并将结果存储在 diff 变量中。最终得到的 diff 列表包含了 list1 中有但 list2 中没有的元素。

需要注意的是,为了使 ListUtils.subtract 方法正常工作,MyClass 类需要正确实现 equalshashCode 方法,以便进行对象的比较和判断。

相关推荐

  1. List

    2024-02-09 14:06:01       42 阅读
  2. 两个list对象取合

    2024-02-09 14:06:01       45 阅读
  3. golang实现获取切片的交集和

    2024-02-09 14:06:01       24 阅读
  4. 【Unity】如何获得两个List各自的补

    2024-02-09 14:06:01       40 阅读
  5. <span style='color:red;'>list</span>

    list

    2024-02-09 14:06:01      174 阅读
  6. list

    2024-02-09 14:06:01       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-09 14:06:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-09 14:06:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-09 14:06:01       87 阅读
  4. Python语言-面向对象

    2024-02-09 14:06:01       96 阅读

热门阅读

  1. 侵入式智能指针和非侵入式智能指针

    2024-02-09 14:06:01       45 阅读
  2. 动态规划C语言

    2024-02-09 14:06:01       39 阅读
  3. Jetpack Room使用

    2024-02-09 14:06:01       49 阅读
  4. 开源软件:引领技术创新与商业模式转型

    2024-02-09 14:06:01       51 阅读
  5. 2024年GPT如何发展?

    2024-02-09 14:06:01       51 阅读
  6. 开源软件的未来发展趋势与应对新挑战和机遇

    2024-02-09 14:06:01       59 阅读
  7. 问题 | 开源软件的影响力

    2024-02-09 14:06:01       42 阅读
  8. Git学习

    Git学习

    2024-02-09 14:06:01      50 阅读
  9. FastAPI使用异步motor实现对mongodb的增删改查

    2024-02-09 14:06:01       57 阅读