RxJava2操作符之“Reduce”
2017-03-31 本文已影响90人
坑吭吭
作用
字面意思减少,也可以叫“聚合”或者“压缩”
实际上的效果就是可以把一个被观察者中的多个事件进行压缩,最后发射压缩后的事件
示例用法
这里举个例子,做一下累加计算
Observable.just(1, 2, 3, 4)//创建了一个有4个数字的被观察者
.reduce(new BiFunction<Integer, Integer, Integer>() {
@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
总结
这个系列只有干货,如果大家有什么好的建议的话欢迎在下面评论。或者觉得我哪里写的不够形象了,同样可以提出来。