博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RxJAVA 常用操作符
阅读量:5285 次
发布时间:2019-06-14

本文共 4793 字,大约阅读时间需要 15 分钟。

 1 zip() 是合并多个Observable 发射出来的数据,并且根据FUNC2 函数变换产生一个新的值

这里会把 1A 2B ,如果一个序列介绍了,就不会产生新的值了;

 

List
list = new ArrayList(); for (int i =0;i<=20;i++){ list.add("arg="+i+"====>>"); } Observable
observable = Observable.interval(1, TimeUnit.SECONDS); Observable
observable1 = Observable.from(list); Observable.zip(observable, observable1, new Func2
() { @Override public Object call(Long aLong, String s) { return s+aLong; } }).subscribe(new Action1
() { @Override public void call(Object o) { Log.i("===>>",(String) o); } });

结果为

01-18 15:25:33.042 1498-1694/sean.com.test I/===>>: arg=16====>>1601-18 15:25:34.042 1498-1694/sean.com.test I/===>>: arg=17====>>1701-18 15:25:35.042 1498-1694/sean.com.test I/===>>: arg=18====>>1801-18 15:25:36.041 1498-1694/sean.com.test I/===>>: arg=19====>>1901-18 15:25:37.042 1498-1694/sean.com.test I/===>>: arg=20====>>20

 

2  Marge() 是把多个Abservable里面的值合并成一个

最后的序列如上图所示

List
list = new ArrayList(); for (int i =0;i<20;i++){ list.add(Long.valueOf(i)); } List
list1 = new ArrayList(); for (int i =20;i<40;i++){ list1.add(Long.valueOf(i)); } Observable
observable = Observable.from(list); Observable
observable1 = Observable.from(list1); Observable.merge(observable, observable1).subscribe(new Action1
() { @Override public void call(Object o) { Log.i("===>>", o+""); } });

结果为 

01-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 001-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 101-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 201-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 301-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 401-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 501-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 601-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 701-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 801-18 15:54:55.132 16954-16954/sean.com.test I/===>>: 901-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1001-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1101-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1201-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1301-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1401-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1501-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1601-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1701-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1801-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 1901-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 2001-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 2101-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 2201-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 2301-18 15:54:55.133 16954-16954/sean.com.test I/===>>: 2401-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 2501-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 2601-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 2701-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 2801-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 2901-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3001-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3101-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3201-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3301-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3401-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3501-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3601-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3701-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 3801-18 15:54:55.134 16954-16954/sean.com.test I/===>>: 39

 

3 Flatmap 和 map, Flatmap 返回一个新的Observable, 而map返回原来的Observerable

List
list = new ArrayList(); for (int i =0;i<20;i++){ list.add(Long.valueOf(i)); } Observable
observable = Observable.from(list); observable.flatMap(new Func1
>() { @Override public Observable
call(Long aLong) { return Observable.just("hello"+aLong); } }).subscribe(new Action1
() { @Override public void call(String s) { Log.i("===>>",s); } }); }

 

4 Concat 链接多个Observable(不能用不定参数??)

转载于:https://www.cnblogs.com/seanzhoutao/p/6296968.html

你可能感兴趣的文章
git - 搭建最简单的git server
查看>>
会话控制
查看>>
推荐一款UI设计软件Balsamiq Mockups
查看>>
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
根据xml生成相应的对象类
查看>>
Android StageFrightMediaScanner源码解析
查看>>
打包java程序生成exe
查看>>
八叉树
查看>>
Git 远程仓库
查看>>
关于静态文本框透明度的问题
查看>>
javascript的发展及个人笔记
查看>>
全选,反全选,反选,获取选中的值,根据子选择控制全选按钮
查看>>
[CF#250 Div.2 D]The Child and Zoo(并查集)
查看>>
博客园博客插入公式
查看>>