当前位置: 首页 > news >正文

如何让自己的网站排名靠前/全国疫情实时资讯

如何让自己的网站排名靠前,全国疫情实时资讯,微软网页制作工具,wordpress扫描工具简要:需求了解:在 Rxjava 的众多操作符中,有数据变换、过滤等,但是有的时候是不是有一些判断的操作呢?比如判断一个 Observable 的所有数据是否满足一个指定的条件,判断某个 Observable 是否会发射一个指定…

简要:

需求了解:

在 Rxjava 的众多操作符中,有数据变换、过滤等,但是有的时候是不是有一些判断的操作呢?比如判断一个 Observable 的所有数据是否满足一个指定的条件,判断某个 Observable 是否会发射一个指定的值等等的判断操作,答案是肯定的,Rxjava 中提供了一系列的布尔条件判断操作符。

Rxjava中的布尔操作符主要包括:

All:判断是否所有的数据项都满足某个条件。

Contains:判断 Observable 是否会发射一个指定的值。

IsEmpty:判断原始Observable是否未发射任何数据。

SequenceEqual:判断两个 Observables 发射的序列是否相等。

1. All

判断是否所有的数据项都满足某个条件。

65c21f5fcac1f08ef7c6a2a0fbd43e7e.png

解析: 传递一个谓词函数(predicate)给 All 操作符,这个函数接受原始 Observable 发射的数据,根据计算返回一个布尔值。 All 返回一个只发射一个单个布尔值的 Observable,如果原始 Observable 正常终止并且每一项数据都满足条件,就返回 true;如果原始 Observable 的任何一项数据不满足条件就返回 false。

示例代码:

/**

* all(Predicate predicate)

* 通过传入的谓语函数predicate进行判断所有数据项是否满足条件,然后返回一个判断结果发射给观察者

*/

Observable.just(1, 2, 3, 4, 5)

.all(new Predicate() {

@Override

public boolean test(Integer integer) throws Exception {

return integer > 5; // 判断原始数据项中的所有数据项是否大于5

}

})

.subscribe(new SingleObserver() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("--> onSubscribe");

}

@Override

public void onSuccess(Boolean aBoolean) {

System.out.println("--> onSuccess: " + aBoolean);

}

@Override

public void onError(Throwable e) {

System.out.println("--> onError: " + e);

}

});

输出:

--> onSubscribe

--> onSuccess: false

2. Contains

判断 Observable 是否会发射一个指定的值。

fef55142b1c7d69ca8c32a06159d2a88.png

解析: 给 Contains 传一个指定的值,如果原始 Observable 发射了那个值,它返回的 Observable 将发射 true ,否则发射 false。

示例代码:

/**

* contains(Object element)

* 判断原始Observable是否发射了指定的element数据

*/

Observable.just(1, 2, 3, 4, 5)

.contains(5) // 判断原始数据项中是否有数据项5

.subscribe(new SingleObserver() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("--> onSubscribe");

}

@Override

public void onSuccess(Boolean aBoolean) {

System.out.println("--> onSuccess: " + aBoolean);

}

@Override

public void onError(Throwable e) {

System.out.println("--> onError: " + e);

}

});

输出:

--> onSubscribe

--> onSuccess: true

3. IsEmpty

判断原始Observable是否未发射任何数据。

e5197dd084e4520d46bd42cd9e2feaed.png

解析: 判断原始 Observable 是否发射了数据项,如果原始 Observable 发射了数据,将发射 false,否则发射 true。

示例代码:

/**

* isEmpty()

* 判断原始Observable是否发射了数据项,如果原始Observable发射了数据,将发射false,否则发射true。

*/

Observable.create(new ObservableOnSubscribe() {

@Override

public void subscribe(ObservableEmitter emitter) throws Exception {

emitter.onComplete(); // 不发射任何数据,直接发射完成通知

}

}).isEmpty()

.subscribe(new SingleObserver() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("--> onSubscribe");

}

@Override

public void onSuccess(Boolean aBoolean) {

System.out.println("--> onSuccess: " + aBoolean);

}

@Override

public void onError(Throwable e) {

System.out.println("--> onError: " + e);

}

});

输出:

--> onSubscribe

--> onSuccess: true

4. SequenceEqual

判断两个 Observables 发射的序列是否相等。

edbdf41fa5f1b092763f835a13f1d9be.png

解析: 传递两个 Observable 给 SequenceEqual 操作符,它会比较两个 Observable 的发射物,如果两个序列是相同的(相同的数据,相同的顺序,相同的终止状态),它就发射 true,否则发射 false。还可以可以传递一个函数用于比较两个数据项是否相同或者设置一个缓存大小指定第一个和第二个源 ObservableSource 预取的项数。

示例代码:

// 创建Observable

Observable observable1 = Observable.range(1, 10);

Observable observable2 = Observable.range(1, 10);

/**

* 1. sequenceEqual(ObservableSource source1, ObservableSource source2)

* 比较两个Observable的数据项是否完全相同(相同数据,顺序,相同终止状态),相同则发射true,否则发射false

*/

Observable.sequenceEqual(observable1, observable2)

.subscribe(new SingleObserver() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("--> onSubscribe(1)");

}

@Override

public void onSuccess(Boolean aBoolean) {

System.out.println("--> onSuccess(1): " + aBoolean);

}

@Override

public void onError(Throwable e) {

System.out.println("--> onError(1): " + e);

}

});

System.out.println("----------------------------------------");

/**

* 2. sequenceEqual(ObservableSource source1, ObservableSource source2, BiPredicate isEqual, int bufferSize)

* isEqual: // 可选参数,定义两个Observable的数据项比较规则

* bufferSize: // 从第一个和第二个源ObservableSource预取的项数

* 通过指定的比较函数isEqual比较两个Observable的数据项是否完全相同(相同数据,顺序,相同终止状态),

* 相同则发射true,否则发射false。还可以通过bufferSize指定一个缓存大小。

*/

Observable.sequenceEqual(observable1, observable2, new BiPredicate() {

@Override

public boolean test(Integer t1, Integer t2) throws Exception {

System.out.println("--> test(2): t1 = " + t1 + ", t2 = " + t2);

return t1 == t2; // 比较两个Observable的数据序列数据是否相等

}

}, 3).subscribe(new SingleObserver() {

@Override

public void onSubscribe(Disposable d) {

System.out.println("--> onSubscribe(2)");

}

@Override

public void onSuccess(Boolean aBoolean) {

System.out.println("--> onSuccess(2): " + aBoolean);

}

@Override

public void onError(Throwable e) {

System.out.println("--> onError(2): " + e);

}

});

输出:

--> onSubscribe(1)

--> onSuccess(1): true

----------------------------------------

--> onSubscribe(2)

--> test(2): t1 = 1, t2 = 1

--> test(2): t1 = 2, t2 = 2

--> test(2): t1 = 3, t2 = 3

--> test(2): t1 = 4, t2 = 4

--> test(2): t1 = 5, t2 = 5

--> test(2): t1 = 6, t2 = 6

--> test(2): t1 = 7, t2 = 7

--> test(2): t1 = 8, t2 = 8

--> test(2): t1 = 9, t2 = 9

--> test(2): t1 = 10, t2 = 10

--> onSuccess(2): true

小结

本节主要介绍了Rxjava布尔(判断)操作符可以根据不同的条件返回 boolean 类型的值,对 Observable 进行不同的判断。

提示:以上使用的Rxjava2版本: 2.2.12

Rx介绍与讲解及完整目录参考:Rxjava2 介绍与详解实例

实例代码:

http://www.lbrq.cn/news/837325.html

相关文章:

  • 网站gif小图标/怎么自己制作一个网站
  • 建站平台是给谁用的/网络营销策略主要包括
  • 公众号开发信息开发者密码是什么/电子商务seo是什么意思
  • 在那个网站做直播好赚钱吗/谷歌搜索入口
  • tplink虚拟服务器做网站/公司运营策划方案
  • 专业网站建设微信网站定制/做一个电商平台大概需要多少钱
  • 如何搭建网站教程视频/长春网站优化指导
  • 做教育类网站一般流程/百度竞价有点击无转化
  • 深圳市住房和城乡建设局网站首页/深圳网络营销推广招聘网
  • 不备案怎么做淘宝客网站吗/南宁seo推广优化
  • 南山医院网站建设/凡科建站登录官网
  • wordpress重新生成标签/seo对网站优化
  • 威海网站建设兼职/站优云seo优化
  • 做网站能力介绍/营销策略包括哪些内容
  • 汽车网站更新怎么做/百度推广是怎么做的
  • wordpress建站的案例/网络推广优化方案
  • 阜宁网站制作费用/免费国外ddos网站
  • 公司网站高端网站建设/真正免费的网站建站平台运营
  • 化妆品做的不好的网站/十大app开发公司排名
  • 舟山公司网站建设/google官网下载安装
  • 二次元动漫网站设计方案/网页制作平台有哪些
  • 网站建设明薇通网络价格美丽/广告制作公司
  • 商务网站设计实训总结/广告公司推广方案
  • 大连模板建站哪家好/手机百度app安装下载
  • 买网站做淘宝客/守游网络推广平台
  • html制作简单个人主页代码/东莞百度推广排名优化
  • 网站建设报价单模板下载/百度电脑版官方下载
  • 怎么在网站做gif/北京外贸网站优化
  • 建立自己的公司网站/昆明优化网站公司
  • 权威的手机网站建设/360提交入口网址
  • Selector的用法
  • 3D材质总监的“光影魔法”:用Substance Sampler AI,“擦除”照片中的光影
  • 有哪些好用的原型设计软件?墨刀、Axure等测评对比
  • 12.6 Google黑科技GShard:6000亿参数MoE模型如何突破显存限制?
  • 基于Ruoyi和PostgreSQL的统一POI分类后台管理实战
  • 7.14练习案例总结