Apache通用集合合併與排序


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

合併兩個排序列表

CollectionUtils的collate()方法可用於合併兩個已排序的列表。

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

public static <O extends Comparable<? super O>> List<O> 
   collate(Iterable<? extends O> a, Iterable<? extends O> b)

引數

  • a - 第一個集合,不能為null
  • b - 第二個集合不能為null

返回值

  • 一個新的排序列表,其中包含集合ab的元素。

異常

  • NullPointerException - 如果其中一個集合為null

範例

以下範例顯示了用法org.apache.commons.collections4.CollectionUtils.collate()方法。

我們將合併兩個已排序的列表,然後列印已合併和已排序的列表。

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

import org.apache.commons.collections4.CollectionUtils;

public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> sortedList1 = Arrays.asList("A","C","E");
      List<String> sortedList2 = Arrays.asList("B","D","F");
      List<String> mergedList = CollectionUtils.collate(sortedList1, sortedList2);
      System.out.println(mergedList); 
   }
}

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

[A, B, C, D, E, F]