只發(fā)射通過了謂詞測試的數(shù)據(jù)項
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/filter.c.png" alt="filter" />
Filter操作符使用你指定的一個謂詞函數(shù)測試數(shù)據(jù)項,只有通過測試的數(shù)據(jù)才會被發(fā)射。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/filter.png" alt="filter" />
RxJava將這個操作符實現(xiàn)為filter函數(shù)。
示例代碼
Observable.just(1, 2, 3, 4, 5)
.filter(new Func1<Integer, Boolean>() {
@Override
public Boolean call(Integer item) {
return( item < 4 );
}
}).subscribe(new Subscriber<Integer>() {
@Override
public void onNext(Integer item) {
System.out.println("Next: " + item);
}
@Override
public void onError(Throwable error) {
System.err.println("Error: " + error.getMessage());
}
@Override
public void onCompleted() {
System.out.println("Sequence complete.");
}
});
輸出
Next: 1
Next: 2
Next: 3
Sequence complete.
filter默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/ofClass.png" alt="ofType" />
ofType是filter操作符的一個特殊形式。它過濾一個Observable只返回指定類型的數(shù)據(jù)。
ofType默認(rèn)不在任何特定的調(diào)度器上指定。