RxJava操作符-布尔


all

RxJava操作符-布尔_第1张图片
public final Observable all(Func1 predicate)

all接受一个Func1实现作为参数,all操作符会把源Observable释放的每个item作为Func1的参数,Func1实现返回一个布尔值,用来判断传入的那个源Observable释放的item是否满足内部定义的规则,满足了返回true,反之为false。假如源Observable正常终止(发出调用onCompleted通知)并且每个释放的item都满足Func1定义的规则,也就是对于每个传入Func1实现的源Observable释放的item,Func1实现都返回true,那么all操作符返回的Observable就只释放一个true布尔值然后结束,反之就释放一个false布尔值然后结束。

contains

RxJava操作符-布尔_第2张图片
public final Observable contains(java.lang.Object element)

传入contains一个对象作为参数,如果源Observable释放的item中也有这个对象,那么contains返回的Observable就****立即****释放一个true布尔值然后结束,反之源Observable释放的item中没有这个对象,contains返回的Observable就返回一个false布尔值然后结束。

exists

RxJava操作符-布尔_第3张图片
public final Observable exists(Func1 predicate)

和contains类似,不过传入exists操作符的是一个Func1实现,exists操作符将源Observable释放的item传给这个Func1实现,如果item满足Func1实现内部定义的规则返回true,反之返回false。只要源Observable释放的item中有一个满足Func1定义的规则,exists返回的Observable就****立即****释放一个true布尔值结束,反之如果源Observable没有释放任何item或释放的所有item都不满足Func1定义的规则,exits返回的Observable就释放一个false布尔值然后结束。

isEmpty

RxJava操作符-布尔_第4张图片
public final Observable isEmpty()

我就喜欢这样的操作符,简单!China人看英文想要理解清楚了,还真得下一点功夫。这个操作符的作用是如果源Observable没有释放任何item,isEmpty返回的Observable释放一个true布尔值然后结束;如果源Observable只要释放了item,isEmpty返回的Observable****立即****释放一个false布尔值然后结束。

sequenceEqual

RxJava操作符-布尔_第5张图片
public static  Observable sequenceEqual(Observable first, Observable second)
public static  Observable sequenceEqual(Observable first, Observable second, Func2 equality)

这是一个静态方法哦!接受两个Observable作为比较源。sequenceEqual操作符会比较这两个源Observable,如果这两个源Observable正常结束,并且按相同的顺序释放一样的item序列,那么sequenceEqual返回的Observable就释放一个true布尔值然后结束,一旦两个源Observable释放的item有不同或遇到错误或异常发出调用onError通知,sequenceEqual返回的Observable就会立即放出一个false布尔值然后结束。你也可以传入一个Func2实现自定义比较规则。

你可能感兴趣的:(RxJava操作符-布尔)