Rxjava1 与 Android 的故事(2)—— Transform

系列故事的第2篇介绍RxJava的变换API

map:

Rxjava1 与 Android 的故事(2)—— Transform_第1张图片
map

map方法对Observable发射的每一项数据应用一个函数,执行变换操作

flatMap:

Rxjava1 与 Android 的故事(2)—— Transform_第2张图片
flatMap

flatMap将一个发射数据的Observable变换为多个Observables,然后将它们发射的数据合并后放进一个单独的Observable

concatMap:

Rxjava1 与 Android 的故事(2)—— Transform_第3张图片
concatMap

concatMap与flatMap相比是可以按顺序接收Observable发送的对象

switchMap:

Rxjava1 与 Android 的故事(2)—— Transform_第4张图片
switchMap

buffer:

Rxjava1 与 Android 的故事(2)—— Transform_第5张图片
buffer

buffer定期收集Observable的数据放进一个数据包裹,然后发射这些数据包裹,而不是一次发射一个值

window:

Rxjava1 与 Android 的故事(2)—— Transform_第6张图片
window

window非常类似buffer操作符,区别在于buffer操作符产生的结果是一个List,而window操作符产生的结果是一个Observable,订阅者可以对这个结果Observable重新进行订阅处理

scan:

Rxjava1 与 Android 的故事(2)—— Transform_第7张图片
scan

groupBy:

Rxjava1 与 Android 的故事(2)—— Transform_第8张图片
groupBy

groupBy将一个Observable进行分组加工成为一个Observable>,观察者onNext()收到的是GroupedObservable

总结:

以上的方法已经基本例举了RxJava中有关Observable对象变换的API,具体用法还需要大家多加练习呀!

注:本人会在此系列文章的末尾加上GitHub源码地址,敬请期待。。。

你可能感兴趣的:(Rxjava1 与 Android 的故事(2)—— Transform)