Apache通用集合合并与排序

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]