给定:
Integer[] arr1 = {1, 5, 9, 17};
Integer[] arr2 = {1, 2, 3, 6, 7, 12, 15};
Observable<Integer> o1 = Observable.from(arr1);
Observable<Integer> o2 = Observable.from(arr2);
如何获取包含 1, 1, 2, 3, 5, 6, 7, 9, 12, 15, 17
的 Observable?
最佳答案
您可以对序列进行合并、排序和展平,但这会产生很大的开销:
o1.mergeWith(o2).toSortedList().flatMapIterable(v -> v).subscribe(...)
或
o1.concatWith(o2).toSortedList().flatMapIterable(v -> v).subscribe(...)
否则,您需要编写相当复杂的运算符。
编辑 04/06/2015:
Here is一个更有效地执行此排序合并的运算符。
关于java - 如何将两个已排序的 Observable 合并为一个已排序的 Observable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630347/