RxJava系列4:RxJava操作符-变换操作符
2017-12-20 21:52
501 查看
对事件序列中的事件 / 整个事件序列 进行加工处理(即变换),使得其转变成不同的事件 / 整个事件序列
即, 将被观察者发送的事件转换为任意的类型事件。
应用场景
数据类型转换
栗子:
应用场景
无序的将被观察者发送的整个事件序列进行变换
???跟map有啥区别??
话说还是不太理解
http://www.jianshu.com/p/c820afafd94b
RxJava 中的map与flatMap
http://blog.csdn.net/new_abc/article/details/48025513
应用场景
缓存被观察者发送的事件
栗子:
理解可参考图示:
Android RxJava:图文详解 变换操作符
https://www.jianshu.com/p/904c14d253ba
map
对 被观察者发送的每1个事件都通过 指定的函数 处理,从而变换成另外一种事件即, 将被观察者发送的事件转换为任意的类型事件。
应用场景
数据类型转换
栗子:
Observable.create(new Observable.OnSubscribe<Integer>() { @Override public void call(Subscriber<? super Integer> subscriber) { subscriber.onNext(1); subscriber.onNext(2); subscriber.onNext(3); } }).map(new Func1<Integer, String>() { @Override public String call(Integer integer) { return "使用 Map变换操作符 将事件" + integer + "的参数从 整型" + integer + " 变换成 字符串类型" + integer; } }).subscribe(new Observer<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.d(":..nht", s); } }); 12-20 10:26:59.652 11717-11717/com.sankuai.moviepro D/:..nht: 使用 Map变换操作符 将事件1的参数从 整型1 变换成 字符串类型1 12-20 10:26:59.652 11717-11717/com.sankuai.moviepro D/:..nht: 使用 Map变换操作符 将事件2的参数从 整型2 变换成 字符串类型2 12-20 10:26:59.652 11717-11717/com.sankuai.moviepro D/:..nht: 使用 Map变换操作符 将事件3的参数从 整型3 变换成 字符串类型3
flatmap
作用:将被观察者发送的事件序列进行 拆分 & 单独转换,再合并成一个新的事件序列,最后再进行发送应用场景
无序的将被观察者发送的整个事件序列进行变换
???跟map有啥区别??
话说还是不太理解
http://www.jianshu.com/p/c820afafd94b
RxJava 中的map与flatMap
http://blog.csdn.net/new_abc/article/details/48025513
concatmap
flatmap理解了,concatmap就好说了。buffer
定期从 被观察者(Obervable)需要发送的事件中 获取一定数量的事件 & 放到缓存区中,最终发送应用场景
缓存被观察者发送的事件
栗子:
Observable.just(1,2,3,4) .buffer(3, 1) .subscribe(new Observer<List<Integer>>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(List<Integer> integers) { for (int i = 0; i < integers.size(); i++) { Log.d(":..nht", integers.get(i) + ""); } } }); 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 1 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 2 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 3 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 2 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 3 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 4 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 3 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 4 12-20 20:20:51.054 6491-6491/com.sankuai.moviepro D/:..nht: 4
理解可参考图示:
参考资料
Android RxJava:图文详解 变换操作符
https://www.jianshu.com/p/904c14d253ba
相关文章推荐
- RxJava 系列之变换操作符flatmap(2)
- Android RxJava操作符详解系列: 变换操作符
- RxJava系列之二 变换类操作符详解1
- RxJava 系列之变换操作符map(2)
- Android RxJava操作符详解系列: 变换操作符
- Android RxJava操作符详解系列: 变换操作符
- RxJava系列之二 变换类操作符具体解释1
- RxJava操作符(03-变换操作)
- Android RxJava操作符详解 系列:组合 / 合并操作符
- RxJava【变换】操作符 map flatMap concatMap buffer
- RxJava操作符系列一
- RxJava操作符(2)-变换
- RxJava操作符系列四
- RxJava操作符系列五
- RxJava2的do系列操作符之doOnNext和doFinally
- RxJava入门系列二,操作符篇
- RxJava的学习之变换操作符—flatMap
- RxJava操作符(03-变换操作)
- Android RxJava操作符详解 系列:功能性操作符
- RxJava操作符系列六