📅  最后修改于: 2023-12-03 15:19:53.713000             🧑  作者: Mango
RxJava是ReactiveX的Java实现,是一种响应式编程库。RxJava提供了一些创建型的操作符,这些操作符可以被用来创建Observable对象,我们可以将这些操作符分类为以下几种:
从单一数据源创建
interval
timer
range
just
from
repeat
从多个数据源创建
merge
concat
zip
combineLatest
interval操作符用于创建一个按固定时间间隔发射整数序列的Observable对象。它有两个参数,第一个参数用于指定发送事件的初始延迟时间,第二个参数用于指定发送事件的周期时间。
Observable<Long> observable = Observable.interval(1, TimeUnit.SECONDS);
timer操作符用于创建一个Observable对象,该对象在指定的一段时间后发射一个默认值0,如果需要可以对默认值进行更改。
Observable<Long> observable = Observable.timer(1, TimeUnit.SECONDS);
range操作符用于创建一个Observable对象,该对象发射的是一个区间内的整数序列。
Observable<Integer> observable = Observable.range(1, 5);
just操作符用于创建一个Observable对象,该对象发射的是我们提供的数据。
Observable<Integer> observable = Observable.just(1,2,3,4,5);
from操作符用于将一个集合类型的对象转换成一个Observable对象,该对象发射的是该集合中的所有元素。
List<Integer> list = Arrays.asList(1,2,3,4,5);
Observable<Integer> observable = Observable.fromIterable(list);
repeat操作符用于创建一个Observable对象,该对象发射的是一个重复发射指定数据的序列。
Observable<Integer> observable = Observable.just(1,2,3).repeat(5);
merge操作符用于将多个Observable对象合并成一个Observable对象,该对象发射的是所有合并的Observable对象发射的元素。
Observable.merge(Observable.just(1,2), Observable.just(3,4))
concat操作符用于将多个Observable对象依次合并成一个Observable对象,该对象发射的是所有Observable对象发射的元素。
Observable.concat(Observable.just(1,2), Observable.just(3,4))
zip操作符用于将多个Observable对象压缩成一个Observable对象,该对象发射的是每个Observable对象发射相同位置元素组成的数据。
Observable.zip(Observable.just(1,2), Observable.just(3,4),
(a, b) -> "zip " + a + " with " + b);
combineLatest操作符用于将多个Observable对象合并成一个Observable对象,该对象发射的是最近合并的Observable对象发射的元素。
Observable<String> observable = Observable.combineLatest(Observable.just("A", "B"),
Observable.just("1", "2", "3"), (a, b) -> a + b);