Rx java 将布尔观测值列表映射到输出中,每当所有输入都为真时,该输出将发出真

Rx java 将布尔观测值列表映射到输出中,每当所有输入都为真时,该输出将发出真,rx-java,reactive-programming,Rx Java,Reactive Programming,假设我有n个布尔值(O1,O2,…,,On),它们发出标志,指示复选框选择状态 例如,对于n=3,我们将有如下内容(T=true和F=false): 我想得到一个输出布尔值可观察的(Oout),当所有最新的发射都是true或false时,它会发射true。大概是这样的: O1 - T ------------------- F ----------------------- T ------ O2 - F ------------ T -----------------------

假设我有n个布尔值(
O1
O2
,…,
,On
),它们发出标志,指示复选框选择状态

例如,对于n=3,我们将有如下内容(
T
=
true
F
=
false
):

我想得到一个输出
布尔值
可观察的
Oout
),当所有最新的发射都是
true
false
时,它会发射
true
。大概是这样的:

O1    - T ------------------- F ----------------------- T ------

O2    - F ------------ T ---------------------------------------

O3    - T -------------------------- F -------- T --------------

================================================================

Oout  - F ------------ T ---- F ----------------------- T ------

RxJava中有没有一种奇特的方法可以做到这一点(也就是说,不需要自己创建自定义的可观察对象和监视状态。我觉得两个操作员可以完成这项工作)

静态方法
可观察。CombineTest(列出可观察对象,FuncN combineFunction)
是您要寻找的东西


您传入一个可观察对象列表和一个确定输出的组合函数,在您的情况下,只要一个for循环就足以检查它们是否都是真的。

Nice!我不知道这件事。通过使用
distinctUntilChanged()
我可以实现我想要的。谢谢
O1    - T ------------------- F ----------------------- T ------

O2    - F ------------ T ---------------------------------------

O3    - T -------------------------- F -------- T --------------

================================================================

Oout  - F ------------ T ---- F ----------------------- T ------