方法名 | 用法 |
---|---|
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的变换操作符和过滤操作符汇总