2
是否有一個與構造的現有的集合庫(番石榴,公共收集)提供一個MergeIterator的:有沒有MergeIterator的實現?
MergeIterator(Iterator<Comparable> iters...)
,然後(假設迭代器被排序的源)通過並行迭代器前進和返回元件爲了?
[1,3,5] + [2,8] => [1,2,3,5,8]
這將是一個有趣的類寫,但我不想重新發明輪子。
是否有一個與構造的現有的集合庫(番石榴,公共收集)提供一個MergeIterator的:有沒有MergeIterator的實現?
MergeIterator(Iterator<Comparable> iters...)
,然後(假設迭代器被排序的源)通過並行迭代器前進和返回元件爲了?
[1,3,5] + [2,8] => [1,2,3,5,8]
這將是一個有趣的類寫,但我不想重新發明輪子。
Iterators.mergeSorted
在番石榴是這樣的事情。
您可以使用公共的集合的CollatingIterator:
List<Integer> list1 = Arrays.asList(1, 3, 5);
List<Integer> list2 = Arrays.asList(2, 8);
Iterator<Integer> merged =
IteratorUtils.collatedIterator(ComparatorUtils.NATURAL_COMPARATOR,
list1.iterator(), list2.iterator());
System.out.println(IteratorUtils.toList(merged));
這將打印以下內容:
[1, 2, 3, 5, 8]