定制时尚是:
obs1 = [1, 3, 5, 7, 9]
,obs2 = [2, 4, 6, 8, 10]
- > mergedObs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我在考虑obs1.zipWith(obs2)
而我的双功能是(a, b) -> Observable.just(a, b)
然后对我来说是不平凡的Observable<Observable<Integer>>
。
答案 0 :(得分:3)
这看起来像是一个有序的合并:合并,以便当所有物品都准备就绪时从源中挑选最小的:
给定固定数量的输入源(可以自我比较或给定
Comparator
)通过从每个源重复选择最小的输入源将它们合并为单个流,直到它们全部完成。
Flowables.orderedMerge(Flowable.just(1, 3, 5), Flowable.just(2, 4, 6))
.test()
.assertResult(1, 2, 3, 4, 5, 6);
修改强>
如果保证源的长度相同,您也可以zip
将它们放入一个结构中,然后将其展平:
Observable.zip(source1, source2, (a, b) -> Arrays.asList(a, b))
.flatMapIterable(list -> list)
;