Rxjava 简明教程

RxJava - Filtering Operators

以下是用于有选择地从 Observable 发出项目的操作符。

Sr.No.

Operator & Description

1

Debounce 仅在没有发出其他项目的情况下出现超时时才发出项目。

2

Distinct Emits only unique items.

3

ElementAt 仅发出 Observable 发出的第 n 个索引的项目。

4

Filter 只发出通过给定谓词函数的那些项目。

5

First 发出第一个项目,或通过给定准则的第一个项目。

6

IgnoreElements 不从 Observable 发出任何项目,但会标记为完成。

7

Last 从 Observable 发出最后一个元素。

8

Sample 使用给定的时间间隔发出最新的项目。

9

Skip 从 Observable 跳过前 n 个项目。

10

SkipLast 从 Observable 跳过最后 n 个项目。

11

Take 从 Observable 取前 n 个项目。

12

TakeLast 从 Observable 取最后 n 个项目。

Filtering Operator Example

在任意编辑器中使用任何您选择的语言(如 C:\>RxJava) 创建以下 Java 程序。

ObservableTester.java

import io.reactivex.Observable;
//Using take operator to filter an Observable
public class ObservableTester  {
   public static void main(String[] args) {
      String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
      final StringBuilder result = new StringBuilder();
      Observable<String> observable = Observable.fromArray(letters);
      observable
         .take(2)
         .subscribe( letter -> result.append(letter));
      System.out.println(result);
   }
}

Verify the Result

按照如下方式使用 javac 编译器编译类 −

C:\RxJava>javac ObservableTester.java

现在按照如下所示运行 ObservableTester:

C:\RxJava>java ObservableTester

它应该产生以下输出 −

ab