[Android开发] RxJava2之路十 - 布尔操作符例子Demo
2017-03-03 10:56
477 查看
一、布尔操作符列表
对原始数据发射源进行布尔操作,经过布尔操作之后,接收者就是观察者接收到的数据是布尔值。名称 | 解析 |
---|---|
all() | 判断是否所有的数据项都满足某个条件 |
contains() | 判断Observable是否会发射一个指定的值 |
isEmpty() | 判断Observable是否发射了一个值 |
sequenceEqual() | 判断两个Observables发射的序列是否相等 |
二、、布尔操作符
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: 1 03-02 18:31:06.762 23478-23478/cn.com.minstone.rxjavalearn E/BooleanActivity@@: all: 2 03-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: 1 03-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); } }); }
相关文章推荐
- [Android开发] RxJava2之路十三-阻塞操作例子Demo
- [Android开发] RxJava2之路八 - 辅助操作符例子Demo
- [Android开发] RxJava2之路十一- 算术和聚合操作符例子Demo
- [Android开发] RxJava2之路四 - 操作符简介与变换操作符例子Demo
- [Android开发] RxJava2之路五 - 过滤操作符例子Demo
- [Android开发] RxJava2之路六 - 结合组合操作符例子Demo
- [Android开发] RxJava2之路九 - 条件操作符例子Demo
- [Android开发] RxJava2之路十二- 异步和连接操作符例子Demo
- [Android开发] RxJava2之路七 - 错误处理操作符例子Demo
- Android-NDK开发之第三个例子--传递整型数组
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- Android 底层开发例子一
- android中基于蓝牙开发的demo
- 【Android游戏开发之五】游戏注册界面Demo-实现两个Activity之间的切换与数据交互!
- 【Android游戏开发之五】游戏注册界面Demo-实现两个Activity之间的切换与数据交互!
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- android 在 windows 下开发的第一个例子
- 【Android游戏开发之五】游戏注册界面Demo-实现两个Activity之间的切换与数据交互!
- android例子程序(ApiDemo)的简单分类整理
- Android-NDK开发之第三个例子--传递字符串数组和中文乱码问题