RxJava操作符实践:8_算术和聚合操作之2_max

一、描述

发射原始Observable的最大值。

Max操作符操作一个发射数值的Observable并发射单个值:最大的那个值。

RxJava中,max属于rxjava-math模块。

max接受一个可选参数,用于比较两项数据的大小,如果最大值的数据超过一项,max会发射原始Observable最近发射的那一项。

maxBy类似于max,但是它发射的不是最大值,而是发射Key最大的项,Key由你指定的一个函数生成。

二、示意图

max

三、示例代码

由于max操作符是属于可选的rxjava-math模块的,所以需要加入下面的依赖:

1
compile 'io.reactivex:rxjava-math:1.0.0'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
MathObservable.max(Observable.just(10, 6, 23, 9))
.subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("onCompleted.");
}

@Override
public void onError(Throwable e) {
System.out.println("onError: " + e.getMessage());
}

@Override
public void onNext(Integer integer) {
System.out.println("onNext: " + integer);
}
});

四、运行结果

1
2
onNext: 23
onCompleted.

五、更多

跟max相关的操作符还有:

  • maxBy

详情可查阅下面的参考资料。

六、参考资料

ReactiveX官方文档

ReactiveX文档中文翻译

PS:欢迎关注 SherlockShi 个人博客

感谢你的支持,让我继续努力分享有用的技术和知识点!