RxJava(十)--转换操作符

2019-03-11  本文已影响0人  azu_test

常用转换操作符

toList、toSortedList、toMap等

实例与功能介绍

1. toList操作符

代码实例

        Observable observable = Observable.just(3,1,2);
        observable = observable.toList();
        Action1 action1 = new Action1<List<Integer>>() {
            @Override
            public void call(List<Integer> list) {
                for (Integer num:list){
                    LogShowUtil.addLog("RxJava","结果: "+num,true);
                }
            }
        };

结果

结果: 3
结果: 1
结果: 2

功能:将发送多项数据且每一项数据调用onNext方法的Observable发送的多项数据组成一个List,然后调用一次onNext方法传递这个列表。

2. toSortedList操作符

代码实例

        Observable observable = Observable.just(3,1,2);
        observable = observable.toSortedList();
        Action1 action1 = new Action1<List<Integer>>() {
            @Override
            public void call(List<Integer> list) {
                for (Integer num:list){
                    LogShowUtil.addLog("RxJava","结果: "+num,true);
                }
            }
        };

结果

结果: 1
结果: 2
结果: 3

功能:功能和toList类似,只是会把产生的列表排序。

3. toMap操作符

代码实例

        RxJavaMapTest.SwordMan s1 = new RxJavaMapTest.SwordMan("韦一笑","A");
        RxJavaMapTest.SwordMan s2 = new RxJavaMapTest.SwordMan("张三丰","SS");
        RxJavaMapTest.SwordMan s3 = new RxJavaMapTest.SwordMan("周芷若","S");
        Observable observable = Observable.just(s1,s2,s3);
        observable = observable.toMap(new Func1<RxJavaMapTest.SwordMan,String>() {
            @Override
            public String call(RxJavaMapTest.SwordMan swordMan) {
                return swordMan.mLevel;
            }
        });
        Action1 action1 = new Action1<Map<String,RxJavaMapTest.SwordMan>>() {
            @Override
            public void call(Map<String,RxJavaMapTest.SwordMan> manMap) {

                LogShowUtil.addLog("RxJava","SS: "+manMap.get("SS").mName,true);
            }
        };

结果

SS: 张三丰

功能:收集原始Observable发送的所有数据到一个Map,然后发送这个Map。

上一篇下一篇

猜你喜欢

热点阅读