📜  RxJava-创建运算符(1)

📅  最后修改于: 2023-12-03 15:19:53.713000             🧑  作者: Mango

RxJava-创建运算符

RxJava是ReactiveX的Java实现,是一种响应式编程库。RxJava提供了一些创建型的操作符,这些操作符可以被用来创建Observable对象,我们可以将这些操作符分类为以下几种:

  • 从单一数据源创建

  • interval

  • timer

  • range

  • just

  • from

  • repeat

  • 从多个数据源创建

  • merge

  • concat

  • zip

  • combineLatest

从单一数据源创建
interval

interval操作符用于创建一个按固定时间间隔发射整数序列的Observable对象。它有两个参数,第一个参数用于指定发送事件的初始延迟时间,第二个参数用于指定发送事件的周期时间。

Observable<Long> observable = Observable.interval(1, TimeUnit.SECONDS);
timer

timer操作符用于创建一个Observable对象,该对象在指定的一段时间后发射一个默认值0,如果需要可以对默认值进行更改。

Observable<Long> observable = Observable.timer(1, TimeUnit.SECONDS);
range

range操作符用于创建一个Observable对象,该对象发射的是一个区间内的整数序列。

Observable<Integer> observable = Observable.range(1, 5);
just

just操作符用于创建一个Observable对象,该对象发射的是我们提供的数据。

Observable<Integer> observable = Observable.just(1,2,3,4,5);
from

from操作符用于将一个集合类型的对象转换成一个Observable对象,该对象发射的是该集合中的所有元素。

List<Integer> list = Arrays.asList(1,2,3,4,5);
Observable<Integer> observable = Observable.fromIterable(list);
repeat

repeat操作符用于创建一个Observable对象,该对象发射的是一个重复发射指定数据的序列。

Observable<Integer> observable = Observable.just(1,2,3).repeat(5);
从多个数据源创建
merge

merge操作符用于将多个Observable对象合并成一个Observable对象,该对象发射的是所有合并的Observable对象发射的元素。

Observable.merge(Observable.just(1,2), Observable.just(3,4))
concat

concat操作符用于将多个Observable对象依次合并成一个Observable对象,该对象发射的是所有Observable对象发射的元素。

Observable.concat(Observable.just(1,2), Observable.just(3,4))
zip

zip操作符用于将多个Observable对象压缩成一个Observable对象,该对象发射的是每个Observable对象发射相同位置元素组成的数据。

Observable.zip(Observable.just(1,2), Observable.just(3,4), 
    (a, b) -> "zip " + a + " with " + b);
combineLatest

combineLatest操作符用于将多个Observable对象合并成一个Observable对象,该对象发射的是最近合并的Observable对象发射的元素。

Observable<String> observable = Observable.combineLatest(Observable.just("A", "B"), 
    Observable.just("1", "2", "3"), (a, b) -> a + b);