android - rxjava buffer操作符使用
问题描述
rxjava中的操作符能够buffer功能之一是能够收集输出一个数组
ArrayList<LatLng> latLngs=......;Observable.from(latLngs).map(new Func1<LatLng, OverlayOptions>() { @Override public OverlayOptions call(LatLng latLng) {Bitmap bimap;if (url.endsWith('svg')) { bimap = LoadImage.getSvgBitmap(context, url); bimap = ScreenUtils.getScaleBitmapSvg(context, bimap);} else { bimap = LoadImage.getBitmap(context, url); bimap = ScreenUtils.getScaleBitmap(context, bimap);}BitmapDescriptor bitDes = BitmapDescriptorFactory.fromBitmap(bimap);OverlayOptions option = new MarkerOptions().position(latLng).icon(bitDes);return option; }}).buffer(latLngs.size())//一次性全部集齐.subscribeOn(Schedulers.io()).observeOn(Schedulers.computation()).subscribe(new Action1<List<OverlayOptions>>() { @Override public void call(List<OverlayOptions> overlayOptionses) {baiduMap.addOverlays(overlayOptionses);//全部添加到地图上 }});
但是前提是能够知道最终输出数组的长度,但是我如果添加一个筛选操作,就不知道最终得到的数组长度了,但是我还是想直接得到一个数组应该怎样做呀
问题解答
回答1:根据楼主的描述,toList()操作符可能更满足你的需求。
相关文章:
1. android - 安卓做前端,PHP做后台服务器 有什么需要注意的?2. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?3. mysql - 我用SQL语句 更新 行的时候,发现全部 中文都被清空了,请问怎么解决?4. python - xpath提取网页路径没问题,但是缺失内容?5. javascript - IOS微信audio标签不能通过touchend播放6. java中这个页面默认是utf-8编码的,1输出乱码可以理解,可是2就不理解了?7. python-mysql Commands out of sync8. docker不显示端口映射呢?9. javascript - 求教各位,本地HTML页面怎么在DIV中嵌套服务器上的页面内容?不用iframe。10. docker start -a dockername 老是卡住,什么情况?
