RxJava - 過濾運算子



以下是用於選擇性地從可觀察物件發出專案的運算子。

序號 運算子及描述
1

Debounce (去抖)

只有在超時發生且沒有發出其他專案時才發出專案。

2

Distinct (去重)

只發出唯一專案。

3

ElementAt (獲取指定索引元素)

只發出可觀察物件發出的第 n 個專案。

4

Filter (過濾)

只發出透過給定謂詞函式的專案。

5

First (獲取第一個元素)

發出第一個專案或透過給定條件的第一個專案。

6

IgnoreElements (忽略元素)

不發出可觀察物件的任何專案,但標記完成。

7

Last (獲取最後一個元素)

發出可觀察物件的最後一個元素。

8

Sample (取樣)

以給定的時間間隔發出最新的專案。

9

Skip (跳過)

跳過可觀察物件的前 n 個專案。

10

SkipLast (跳過最後幾個元素)

跳過可觀察物件的最後 n 個專案。

11

Take (獲取前幾個元素)

獲取可觀察物件的前 n 個專案。

12

TakeLast (獲取最後幾個元素)

獲取可觀察物件的最後 n 個專案。

過濾運算子示例

使用您選擇的任何編輯器建立以下 Java 程式,例如在 C:\>RxJava 中。

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);
   }
}

驗證結果

使用 **javac** 編譯器編譯類,如下所示:

C:\RxJava>javac ObservableTester.java

現在執行 ObservableTester,如下所示:

C:\RxJava>java ObservableTester

它應該產生以下輸出:

ab
廣告
© . All rights reserved.