“初步接触RxJava的操作符总结”
前言
笔者在项目的推动下要使用RxJava,因此先去了解一下RxJava的一些基础知识。
本章是笔者暂时接触到的RxJava的操作符的一些整理。
当然,这是笔者自己的总结,参考了几篇通俗易懂的文章,会在文末贴出链接。
正文
创建操作符
创建操作符,用于创建上游,实际可应用在网络请求轮询中。
模式名称 | 定义 |
---|---|
Create | 直接创建 |
Just | 简洁创建;会将创建时传入的参数依次发送出来 |
From | 简洁;将传入的数组或列表拆分为具体对象后依次发送 |
Interval | 创建一个按时间间隔发送整数序列的上游;有定时器作用 |
Range | 创建一个发送一个范围内有序整数序列的上游 |
Defer | 延迟创建,直到被订阅才开始创建 |
Repeat | 创建一个重复N次发送特定数据的上游 |
变换操作符
变换操作符,对上游发送的数据做变换,实际可应用在网络请求嵌套中。
模式名称 | 定义 |
---|---|
Map | 指定Func对象,将上游发送的数据进行直接转换 |
FlatMap | 将上游发送的数据集合变换平坦化放进新的上游中;flatmap合并允许交叉,即最后接收顺序不一定是原始发送顺序 |
ConcatMap | 同上,但是最后接收顺序是有序的 |
FlatMapIterable | 将数据转为Iterable(集合、列表),并做相关数据处理 |
Cast | 强制将Observable发射的所有数据转换为指定类型 |
Buffer | 设置缓冲区容量值N,新建上游,每次发送一组N数据 |
GroupBy | 分组,对原数据某key值进行分组后发送,发送上游而不是数据组 |
过滤操作符
过滤操作符,对上游发送的数据做过滤,实际可应用在搜索请求的优化。
模式名称 | 定义 |
---|---|
Filter | 对发送的数据进行特殊处理,只取符合的数据 |
Sample | 每隔自定时间会对数据进行取样,发送取到的数据 |
Take、TakeList | 将发送数据的前N项或后N项发送出去,其余过滤 |
Distinct | 直接使用,去重 |
组合操作符
组合操作符,对多个上游发送的数据做组合后发送,实际可应用在数据源合并、联合判断、数据同时展示。
模式名称 | 定义 |
---|---|
Zip | 将多个上游发送的事件结合重新发送,按照顺序结合,并且重发送的数量以数量最少的事件为准;以最后一个上游发送事件的被接收开始按序进行组合 |
功能操作符
组合操作符,对上游发送的数据做功能性操作,实际可应用在线程切换、轮询、发送网络请求时差错重试机制。
模式名称 | 定义 |
---|---|
subscribe | 上下游的订阅连通 |
subscribrOn | 线程调度 |
observeOn | 线程调度 |
delay | 延迟操作 |
repeat | 重复发送 |
后记
以上就是笔者自己对RxJava操作符的整理,同时给出链接:
在这位作者的动态里有教程一到十,可以自行阅读:给初学者的RxJava2.0教程(一)
残念,笔者并没有给出代码示例的打算 哈哈哈哈