RxJava的变换操作符和过滤操作符汇总

方法名 用法
map() 对序列的每一项都用一个函数来变换Observable发射的数据序列

flatMap()

concatMap()

flatMapIterable()

将Observable发射的数据集合变换为Observable集合,然后将这些Observable发射的数据平坦话地放进一个单独的Observable中
switchMap() 将Observable发射的数据集合转换为Observables集合,然后只发射这些Observables最近发射过的数据
scan() 对Observable发射的每一项数据应用一个函数,然后按顺序依次发射每一个值
groupBy() 将Observable拆分为Observable集合,将原始Observable发射的数据按Key分组,每一个Observable发射过一组不同的数据
buffer() 定期从Observable收集数据到一个集合,然后把这些数据集合打包发射,而
不是一个发射一个
window() 定期将来自Observable的数据拆分成一些Obs窗口,然后发射这些窗口,而不是每次发射一项
cast() 在发射之前强制将Observable发射的所有数据转换为指定类型
方法名 用法
filter() 过滤数据
takeLast() 只发射最后的N项数据
last() 只发射最后一项数据
lastDefault() 只发射最后一项数据,如果Observable为空,就发射默认值
takeLastBuffer() 将最后的N项数据当作单个数据发射
skip() 跳过开始的N项数据
skipLast() 跳过最后的N项数据
first() and takeFirst() 只发射第一项数据,或者满足某种条件的第一项数据
firstDefault() 只发射第一项数据,如果Observable为空,就发射默认值
elementAt() 发射第N项数据
elementAtOrDefault() 发射第N项数据,如果Observable数据少于N项,则发射默认值
sample() or throttleLast() 定期发射Observable最近的数据
throttleFirst() 定期发射Observable发射的第一项数据
throttleWithTimeout() or debounce() 只有当Observable在指定的时间段后还没有发射数据时,才发射一个数据
timeout() 如果在一个指定的时间段后还没发射数据,就发射一个异常
distinct() 过滤掉重复的数据
distinctUntilChanged() 过滤掉连续重复的数据
ofType() 只发射指定类型的数据
ignoreElements() 丢弃所有的正常数据,只发射错误或完成的通知

原文 

https://juejin.im/post/5ef1abc66fb9a058b10aacf2

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » RxJava的变换操作符和过滤操作符汇总

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址