本文主要是介绍三、RxJava转换map,flatMap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.项目地址
在:MainActivity4
2.讲解
1.map,
int类型转为String
Observable.just(1).map(new Function<Integer, String>() {//int转String@Overridepublic String apply(Integer integer) throws Throwable {//1Log.d(TAG, "apply: "+integer);return "["+integer+"]";}}).subscribe(new Observer<String>() {@Overridepublic void onSubscribe(@NonNull Disposable d) {}@Overridepublic void onNext(@NonNull String s) {Log.d(TAG, "onNext: "+s);}@Overridepublic void onError(@NonNull Throwable e) {}@Overridepublic void onComplete() {}});
int转String再转Bitmap
Observable.just(1).map(new Function<Integer, String>() {@Overridepublic String apply(Integer integer) throws Throwable {Log.d(TAG, "apply: "+integer);return "["+integer+"]";}}).map(new Function<String, Bitmap>() {@Overridepublic Bitmap apply(String s) throws Throwable {Log.d(TAG, "apply: "+s);return Bitmap.createBitmap(1920,1280,Bitmap.Config.ARGB_8888);}}).subscribe(new Observer<Bitmap>() {@Overridepublic void onSubscribe(@NonNull Disposable d) {}@Overridepublic void onNext(@NonNull Bitmap bitmap) {Log.d(TAG, "onNext: "+bitmap);}@Overridepublic void onError(@NonNull Throwable e) {}@Overridepublic void onComplete() {}});
2.flatMap
返回一个观察者(int 转String):
Observable.just(1111).flatMap(new Function<Integer, ObservableSource<String>>() {@Overridepublic ObservableSource<String> apply(Integer integer) throws Throwable {return Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {emitter.onNext(integer+"flatMap变换操作符");emitter.onNext(integer+"flatMap变换操作符");emitter.onComplete();}});}})//订阅.subscribe(new Consumer<String>() {@Overridepublic void accept(String s) throws Throwable {Log.d(TAG, "accept: "+s);}});
为每个值拼接,转为list,然后延迟打印:
Observable.create(new ObservableOnSubscribe<String>() {@Overridepublic void subscribe(@NonNull ObservableEmitter<String> emitter) throws Throwable {emitter.onNext("步惊云");emitter.onNext("雄霸");emitter.onNext("无名");}}).flatMap(new Function<String, ObservableSource<?>>() {@Overridepublic ObservableSource<?> apply(String s) throws Throwable {List<String> list=new ArrayList<>();for (int i = 0; i < 3; i++) {list.add(s+"下标:"+1+i);}return Observable.fromIterable(list).delay(1, TimeUnit.SECONDS);//创建型操作符,创建被观察者}})//订阅.subscribe(new Consumer<Object>() {@Overridepublic void accept(Object o) throws Throwable {Log.d(TAG, "accept: "+o);}});
打印结果:
3.cast操作符就是将不同数据类型转换成指定类型
这篇关于三、RxJava转换map,flatMap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!