[Android开发] RxJava2之路十
来源:互联网 发布:尤里的复仇网络进不去 编辑:程序博客网 时间:2024/05/17 17:58
一、布尔操作符列表
对原始数据发射源进行布尔操作,经过布尔操作之后,接收者就是观察者接收到的数据是布尔值。
二、、布尔操作符
2.1 all操作符
在all里面接收发射源的数据,如果返回了假就终止发射,发射假到观察者。返回真就等发射源发射完毕就发射真到观察者。
/** * 判断是否所有的数据项都满足某个条件 */ private void testAll() { Observable.just("1", "2") .all(new Predicate<String>() { @Override public boolean test(@NonNull String s) throws Exception { Log.e(TAG, "all: "+s); //return false; return true; } }).subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
all的返回为真时候的输出
03-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: all: 103-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: all: 203-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: accept: true
all的返回为假时候的输出:
03-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: all: 103-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: accept: false
2.2 contains操作符
判断发射的数据里面有没有指定的数据,有就发射真咯,没就假咯。
private void testContains() { Observable.just("1", "2") .contains("2") .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
输出:
03-02 18:34:30.393 23937-23937/cn.com.minstone.rxjavalearn E/BooleanActivity@@: accept: true
2.3 isEmpty操作符
判断发射的数据是否为空
private void testIsEmpty() { Observable.just("1", "2") .isEmpty() .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
输出:
03-02 18:39:56.288 24787-24787/cn.com.minstone.rxjavalearn E/BooleanActivity@@: accept: false
如果下面这样,输出就是真了:
private void testIsEmpty() { Observable.empty() .isEmpty() .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
2.4 sequenceEqual操作符
判断两个Observables发射的序列是否相等。
private void testSequenceEqual() { Observable.sequenceEqual(Observable.just("1"),Observable.just("1")) .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
上面的代码输出为真啦:
03-02 18:42:48.074 25535-25535/cn.com.minstone.rxjavalearn E/BooleanActivity@@: accept: true
下面这样子就输出为假:
private void testSequenceEqual() { Observable.sequenceEqual(Observable.just("1"),Observable.just("1","2")) .subscribe(new Consumer<Boolean>() { @Override public void accept(@NonNull Boolean aBoolean) throws Exception { Log.e(TAG, "accept: "+aBoolean); } }); }
1 0
- [Android开发] RxJava2之路十
- [Android开发] Rxjava2之路: Rxbinding2(支持基于Rxjava2)
- [Android开发] RxJava2之路六
- [Android开发] RxJava2之路七
- [Android开发] RxJava2之路八
- [Android开发] RxJava2之路九
- [Android开发] RxJava2之路一 - 观察者模式
- [Android开发] RxJava2之路二 - 基本使用方法
- [Android开发] RxJava2之路十三-阻塞操作例子Demo
- RxJava2.0之Android
- [Android开发] RxJava2之路三 - 调度器Scheduler与线程控制
- [Android开发] RxJava2之路四 - 操作符简介与变换操作符例子Demo
- [Android开发] RxJava2之路五 - 过滤操作符例子Demo
- [Android开发] RxJava2之路十一- 算术和聚合操作符例子Demo
- [Android开发] RxJava2之路十二- 异步和连接操作符例子Demo
- Android响应式编程之RxJava2.0
- Android 开发之路十---------SAX,DOM,PULL解析XML
- Android Rxjava2
- APP技术支持
- HTTP深入浅出 http请求
- Apache 重定向
- 一台电脑多个JDK
- jquery自动触发事件trigger
- [Android开发] RxJava2之路十
- 137. Single Number II
- Java 克隆的优点
- Android 百分比布局库(percent-support-lib) 使用详解
- 筋斗云接口编程 / 对象型接口
- 二叉树学习(一):二叉树概念及存储结构
- html5新增的语义标签
- Android修改图片颜色-转成灰度图
- 定义和使用EL函数