- RxJava 教程
- RxJava - 首頁
- RxJava - 概述
- RxJava - 環境搭建
- 可觀察物件 (Observables)
- RxJava - 可觀察物件的工作原理
- RxJava - 建立可觀察物件
- RxJava - 單一可觀察物件 (Single Observable)
- RxJava - Maybe 可觀察物件
- RxJava - Completable 可觀察物件
- RxJava - 使用 CompositeDisposable
- 運算子 (Operators)
- RxJava - 建立運算子
- RxJava - 變換運算子
- RxJava - 過濾運算子
- RxJava - 組合運算子
- RxJava - 工具運算子
- RxJava - 條件運算子
- RxJava - 數學運算子
- RxJava - 可連線運算子
- 主題 (Subjects)
- RxJava - 主題
- RxJava - PublishSubject
- RxJava - BehaviorSubject
- RxJava - ReplaySubject
- RxJava - AsyncSubject
- 排程器 (Schedulers)
- RxJava - 排程器
- RxJava - Trampoline 排程器
- RxJava - NewThread 排程器
- RxJava - Computation 排程器
- RxJava - IO 排程器
- RxJava - From 排程器
- 其他
- RxJava - 緩衝
- RxJava - 視窗
- RxJava 有用資源
- RxJava - 快速指南
- RxJava - 有用資源
- RxJava - 討論
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
廣告