过滤操作 - Filter

优质
小牛编辑
122浏览
2023-12-01

Filter

只发射通过了谓词测试的数据项

filter

Filter操作符使用你指定的一个谓词函数测试数据项,只有通过测试的数据才会被发射。

filter

RxJava将这个操作符实现为filter函数。

示例代码

  1. Observable.just(1, 2, 3, 4, 5)
  2. .filter(new Func1<Integer, Boolean>() {
  3. @Override
  4. public Boolean call(Integer item) {
  5. return( item < 4 );
  6. }
  7. }).subscribe(new Subscriber<Integer>() {
  8. @Override
  9. public void onNext(Integer item) {
  10. System.out.println("Next: " + item);
  11. }
  12. @Override
  13. public void onError(Throwable error) {
  14. System.err.println("Error: " + error.getMessage());
  15. }
  16. @Override
  17. public void onCompleted() {
  18. System.out.println("Sequence complete.");
  19. }
  20. });

输出

  1. Next: 1
  2. Next: 2
  3. Next: 3
  4. Sequence complete.

filter默认不在任何特定的调度器上执行。

ofType

ofType

ofTypefilter操作符的一个特殊形式。它过滤一个Observable只返回指定类型的数据。

ofType默认不在任何特定的调度器上指定。