美文网首页
RxJava(十)--转换操作符

RxJava(十)--转换操作符

作者: azu_test | 来源:发表于2019-03-11 17:24 被阅读0次

    常用转换操作符

    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。

    相关文章

      网友评论

          本文标题:RxJava(十)--转换操作符

          本文链接:https://www.haomeiwen.com/subject/qkyrpqtx.html