- 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
广告