RxJava2操作符之“Reduce”

作用

字面意思减少,也可以叫“聚合”或者“压缩”
实际上的效果就是可以把一个被观察者中的多个事件进行压缩,最后发射压缩后的事件

示例用法

这里举个例子,做一下累加计算

 Observable.just(1, 2, 3, 4)//创建了一个有4个数字的被观察者
                .reduce(new BiFunction() {
                    @Override
                    public Integer apply(Integer t1, Integer t2) {
                        return t1 + t2;//累加操作,如果是-就是累减操作。。依此类推
                    }
                })
                .subscribe(getObserver())//这里的观察者依然不重要

这里前两个数计算的结果会作为第二个计算的t1传进来,直到处理完最后一次计算

运行结果

10

分析

我们的被观察者中有4个数,分别是1,2,3,4
reduce的过程:
t1 = 1;t2 = 2
计算:t1 + t2 = 3;
t1 = 3;t2 = 3;
计算: t1 + t2 = 6;
t1 = 6;t2 = 4;
计算 :t1 + t2 = 10;
结束
最后,将聚合结果发射出来,观察者接受为10

总结

这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。或者觉得我哪里写的不够形象了,同样可以提出来。

你可能感兴趣的:(RxJava2操作符之“Reduce”)