Apache通用集合相交


Apache Commons Collections庫的CollectionUtils類提供各種實用方法,用於覆蓋廣泛用例的常見操作。 它有助於避免編寫樣板程式碼。 這個庫在jdk 8之前是非常有用的,但現在Java 8的Stream API提供了類似的功能。

檢查相交

CollectionUtils的intersection()方法可用於獲取兩個集合(交集)之間的公共物件部分。

宣告
以下是org.apache.commons.collections4.CollectionUtils.intersection()方法的宣告 -

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

引數

  • a - 第一個(子)集合不能為null
  • b - 第二個(超集)集合不能為null

返回值
兩個集合的交集。

範例

以下範例顯示org.apache.commons.collections4.CollectionUtils.intersection()方法的用法。在此範例中將得到兩個列表的交集。

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("Commons Objects of List 1 and List 2: " 
         + CollectionUtils.intersection(list1, list2));
   }
}

執行上面範例程式碼,得到以下結果 -

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Commons Objects of List 1 and List 2: [A, A, B, B]