RxJava - 转换运算符
以下是用于转换从 Observable 发出的项目的运算符。
Sr.No. | 运算符和说明 |
---|---|
1 | Buffer 定期将 Observable 中的项目收集到包中,然后发出包而不是项目。 |
2 | FlatMap 用于嵌套的可观察对象。将项目转换为可观察对象。然后将项目展平为单个 Observable。 |
3 | GroupBy 将一个 Observable 划分为按键组织的 Observable 集合,以发出不同的项目组。 |
4 | Map 将函数应用于每个发出的项目以对其进行转换。 |
5 | Scan 按顺序将函数应用于每个发出的项目,然后发出连续的值。 |
6 | Window 定期将 Observable 中的项目收集到 Observable 窗口中,然后发出窗口而不是项目。 |
转换运算符示例
使用您选择的任何编辑器(例如,C:\> RxJava)创建以下 Java 程序。
ObservableTester.java
import io.reactivex.Observable; //使用 map 操作符转换 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 .map(String::toUpperCase) .subscribe( letter -> result.append(letter)); System.out.println(result); } }
验证结果
使用 javac 编译器编译类,如下所示 −
C:\RxJava>javac ObservableTester.java
现在运行 ObservableTester,如下所示 −
C:\RxJava>java ObservableTester
它应该产生以下输出 −
ABCDEFG