java - 如何将两个已排序的 Observable 合并为一个已排序的 Observable?

标签 java system.reactive rx-java

给定:

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/

相关文章:

java - 操纵二的大幂的有效方法

java - 来自 block API "Jar"部分的 gradle java 插件 "from"任务

Java - 转换 "this[int x, int y]"

c# - 2 个 IObservable 上的响应式(Reactive) linq 表达式

c# - 如何在不使用 Subject<T> 支持字段的情况下公开 IObservable<T> 属性

java - Intellij 中的正则表达式编译

c# - 可观察网络 IO 解析

java - Rx Java Observable 执行直到某些条件

java - 在 Scala 中使用 RxJava 和平面 map

java - RxJava : PublishSubject acts synchronously