RxJava操作符(8)-聚合

    xiaoxiao2025-11-10  4

    Concat

    Concat操作符将2到9个Observable,按照顺序将他们合并为一个Observable发射出去。

    原理图如下:

    Concat操作符使用如下:

    @Override protected void createObservable() { super.createObservable(); mObservable = Observable.concat(Observable.just(4, 5, 6), Observable.just(1, 2, 3)); } 运行代码,结果如下:

    Reduce

    Reduce操作符对原始Observable发射数据的第一项应用一个函数,然后再将这个函数的返回值与第二项数据一起传递给函数,以此类推,持续这个过程知道原始Observable发射它的最后一项数据并终止,此时Reduce返回的Observable发射这个函数返回的最终值。

    原理图如下:

    Reduce操作符使用如下:

    @Override protected void createObservable() { super.createObservable(); mObservable = Observable.just(1, 2, 3, 4, 5).reduce(new Func2<Integer, Integer, Integer>() { @Override public Integer call(Integer integer, Integer integer2) { return integer + integer2; } }); } 运行代码,结果如下:

    Collect

    Collect操作符将Observable要发射的数据,存放到一个数据结构里,在将这个数据结构发射出去。

    原理图如下:

    Collect操作符使用如下:

    @Override protected void createObservable() { super.createObservable(); mObservable = Observable.concat(Observable.just(11, 12, 13, 14, 15), Observable.just(1, 2, 3, 4, 5)) .collect(new Func0() { @Override public ArrayList<Integer> call() { return new ArrayList<Integer>(); } }, new Action2<ArrayList<Integer>, Integer>() { @Override public void call(ArrayList<Integer> o, Integer o2) { o.add(o2); } }); } 运行代码,结果如下:

    Count

    Collect操作符将Observable要发射的数据,存放到一个数据结构里,在将这个数据结构发射出去。

    原理图如下:

    Count操作符使用如下:

    @Override protected void createObservable() { super.createObservable(); mObservable = Observable.just(1, 2, 3).count(); } 运行代码,结果如下: 接下来就是鸣谢了,非常感谢以下两位博主,相关链接如下: https://mcxiaoke.gitbooks.io/rxdocs/content/operators/Mathematical-and-Aggregate-Operators.html http://mushuichuan.com/2015/12/11/rxjava-operator-8/ github地址
    转载请注明原文地址: https://ju.6miu.com/read-1304048.html
    最新回复(0)