RxJava 中的笛卡尔积 [英] Cartesian product in RxJava
本文介绍了RxJava 中的笛卡尔积的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在 rxjava 中获得两个 Observable 的笛卡尔积?
Is it possible to get Cartesian product of two Observables in rxjava?
像这样:
A -> 1,2,3
B -> a,b
A x B -> (1, a), (1, b), (2, a), (2, b), (3, a), (3, b)
推荐答案
你想要的是为一个数字生成一对,就像你有字母一样.因此,您可以使用 map
和 flatMap
运算符轻松实现这一点.
What you want is to produce, for one number, as pair as you have letters.
So you can easily achive this using map
and flatMap
operator.
Observable<Integer> number = Observable.from(Arrays.asList(1, 2, 3));
Observable<String> letters = Observable.from(Arrays.asList("a", "b"));
Observable<Pair> cartesian = number.flatMap((n) -> letters.map((l) -> new Pair(n, l)));
这篇关于RxJava 中的笛卡尔积的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文