android - 使用 RxJava 转换 HashMap 值

标签 android rx-java observable rx-android subscriber

有没有某种方式,我的意思是使用 rx 运算符,来转换每个 HashMap 值(将 hashmap 键设置为值字段)并进入一个新的 Hashmap 或 ArrList?

Observable<HashMap<String,Allergy>> observable = MyREST.getsAllergiesApi().getAllAllergiesRx();
    observable
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .unsubscribeOn(Schedulers.io())
            .subscribe(new Subscriber<HashMap<String, Allergy>>() {
                @Override
                public void onCompleted() {
                    Log.i(TAG,"onCompleted");
                }

                @Override
                public void onError(Throwable e) {
                    Log.i(TAG,"onError");
                }

                @Override
                public void onNext(HashMap<String, Allergy> allergies) {

                    mView.displayAllergies(allergies);
                    Log.i(TAG,"onNeXt");
                }
            });

最佳答案

您可以在 map 中使用任何经典转换,也可以展平、映射和收集值。

Observable<Map<String, Allergy>> source = ...

source.map(map -> {
    HashMap<Allergy, Allergy> newMap = new HashMap<>();
    for (Allergy a : map.values()) {
        newMap.put(a, a);
    }
    return newMap;
})
.subscribe(...)

source.flatMapIterable(map -> map.values())
.toMap(v -> v)
.subscribe(...)

关于android - 使用 RxJava 转换 HashMap 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971016/

相关文章:

json - 以 Angular 2 在 Ngfor 上迭代一个 json 对象

observable - 如何在RxJava中的自定义Observable中获得观察者取消订阅操作的通知

android - MPAndroidChart 条形图水平/垂直

android - 选择同一组的多个相关行 onlongclick ListView

java - 如何重写以下rx-java爬虫

rx-java - 如何观察java rx中的调用线程?

rx-java - 为什么 RxJava2 doOnSubscribe 运行顺序困惑?

angular - Redux-Observable - 调度必须按顺序运行的多个操作

android - 创建您自己的自定义适配器时,getView() 方法如何工作?

19+ api 中用于 SMS 的 Android 静态广播接收器(当应用程序关闭时)