all
/**
* 判断发送的每项数据是否都满足条件,满足,返回 true;否则,返回 false
*/
private void all() {
Observable
.just(1, 2, 3, 4, 5, 6)
.all(integer -> integer % 2 == 0)
.subscribe(aBoolean -> Log.i(TAG, "返回结果: " + aBoolean));
}
takeWhile
/**
* 判断发送的每项数据是否满足条件,若发送的数据满足该条件,则发送该项数据;否则不发送
*/
private void takeWhile() {
Observable
.just(1, 2, 3, 4, 5, 6)
.takeWhile(integer -> integer % 2 == 0)
.subscribe(aBoolean -> Log.i(TAG, "返回结果: " + aBoolean));
}
all 与takeWhile区别在于使用all时,观察者接收到的是 发送数据是否满足条件的判断;而takeWhile则返回满足条件的发送数据。
skipWhile
/**
* 判断发送的每项数据是否满足条件,当不满足条件时(integer>=4)才发送
*/
private void skipWhile() {
Observable
.interval(1, TimeUnit.SECONDS)
.skipWhile(integer ->integer < 4 )
.subscribe(integer -> Log.i(TAG, "返回结果: " + integer));
}
1、takeWhile 条件为false时才发送; 2、takeUntil 执行到某个条件时,停止发送事件,即(integer>4)时停止发送,Observable也可以作为条件
sequenceEqual
/**
* 两个Observables需要发送的数据是否相同
*/
private void sequenceEqual() {
Observable
.sequenceEqual(
Observable.just("a"),
Observable.just("1")
).subscribe(aBoolean -> Log.i(TAG, "返回结果: " + aBoolean));
}
contains
/**
* 判断发送的数据中是否包含指定数据
*/
private void contains() {
Observable
.just(1, 2, 3)
.contains(1)
.subscribe(integer -> Log.i(TAG, "返回结果: " + integer));
}
isEmpty
/**
* 判断发送的数据是否为空
*/
private void isEmpty() {
Observable
.empty()
.isEmpty()
.subscribe(integer -> Log.i(TAG, "返回结果: " + integer));
}