Apache通用集合差集

Apache通用集合差集

Apache Commons Collections库的CollectionUtils类提供各种实用方法,用于覆盖广泛用例的常见操作。 它有助于避免编写样板代码。 这个库在jdk 8之前是非常有用的,但现在Java 8的Stream API提供了类似的功能。

差集-一般地,记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差)。

求差集

CollectionUtils的subtract()方法可用于通过从其他集合中减去一个集合的对象来获取新集合。

声明
以下是org.apache.commons.collections4.CollectionUtils.subtract()方法的声明 -

public static <O> Collection<O> subtract(Iterable<? extends O> a,
   Iterable<? extends O> b)

参数

  • a - 要从中减去的集合,不能为null
  • b - 要减去的集合,不能为null

返回值

两个集合的差集(新集合)。

示例

以下示例显示org.apache.commons.collections4.CollectionUtils.subtract()方法的用法。在此示例中将得到两个列表的差集。

import java.util.Arrays;
import java.util.List;

import org.apache.commons.collections4.CollectionUtils;

public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");

      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("List 1 - List 2: " 
         + CollectionUtils.subtract(list1, list2));
   }
}

执行上面示例代码,得到以下结果 -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
List 1 - List 2: [A, C]