RxJava2.0 操作符之 -- 算数操作符

本贴最后更新于 2835 天前,其中的信息可能已经天翻地覆

rxjava-math 模块的操作符 此类库只有 1.x 的支持,2.0 代码真没法写

averageInteger( ) — 求序列平均数并发射

averageLong( ) — 求序列平均数并发射

averageFloat( ) — 求序列平均数并发射

averageDouble( ) — 求序列平均数并发射

max( ) — 求序列最大值并发射

maxBy( ) — 求最大 key 对应的值并发射

min( ) — 求最小值并发射

minBy( ) — 求最小 Key 对应的值并发射

sumInteger( ) — 求和并发射

sumLong( ) — 求和并发射

sumFloat( ) — 求和并发射

sumDouble( ) — 求和并发射

Concat

不交错的发射两个或多个 Observable 的发射物

Observable observable1 = Observable.just(1, 2, 3, 4); Observable observable2 = Observable.just(5, 6, 7, 8); Observable.concat(observable1,observable2).subscribe(RxUtils.getObserver());
onSubscribe Thread:Thread[main,5,main] onNext:1 Thread:Thread[main,5,main] onNext:2 Thread:Thread[main,5,main] onNext:3 Thread:Thread[main,5,main] onNext:4 Thread:Thread[main,5,main] onNext:5 Thread:Thread[main,5,main] onNext:6 Thread:Thread[main,5,main] onNext:7 Thread:Thread[main,5,main] onNext:8 Thread:Thread[main,5,main] onComplete

Reduce

按顺序对 Observable 发射的每项数据应用一个函数并发射最终的值

Observable.just(1, 2, 3, 4, 5).reduce(new BiFunction, Integer, Integer>() { public Integer apply(@NonNull Integer integer, @NonNull Integer integer2) throws Exception { return integer + integer2; } }).toObservable().subscribe(RxUtils.getObserver());
onSubscribe Thread:Thread[main,5,main] onNext:15 Thread:Thread[main,5,main] onComplete Thread:Thread[main,5,main]

Count

计算数据项的个数并发射结果

Observable.just(1,2,3,4) .count().toObservable() .subscribe(RxUtils.getObserver());
onSubscribe Thread:Thread[main,5,main] onNext:4 Thread:Thread[main,5,main] onComplete Thread:Thread[main,5,main]

collect

Collect 操作符类似于 Reduce,但是其目的不同,collect 用来将源 Observable 发射的数据给收集到一个数据结构里面,需要使用两个参数:

  • 一个产生收集数据结构的函数。
  • 一个接收第一个函数产生的数据结构和源 Observable 发射的数据作为参数的函数。
List list=new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); Observable.fromIterable(list).collect(new Callable>() { public ArrayList call() throws Exception { return new ArrayList(); } }, new BiConsumer, Integer>() { public void accept(ArrayList integers, Integer integer) throws Exception { integers.add(integer); } }).toObservable().subscribe(RxUtils.>getObserver());
onSubscribe Thread:Thread[main,5,main] onNext:[1, 2, 3, 4, 5] Thread:Thread[main,5,main] onComplete Thread:Thread[main,5,main]
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3198 引用 • 8215 回帖
  • 线程
    123 引用 • 111 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...