肥宅钓鱼网
当前位置: 首页 钓鱼百科

springcloud与rpc的区别(RxJava响应式编程框架)

时间:2023-08-22 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

过滤型操作符本节介绍RxJava的两个过滤型操作符:filter操作符和distinct操作符。filter操作符filter操作符用于判断Observable弹射的每一个消息是否满足条件。如果满足条件,就继续向下游的观察者传递;如果不满足条件,就过滤掉。filter操作符的处理流程如图4-4所示。

过滤型操作符

本节介绍RxJava的两个过滤型操作符:filter操作符和distinct操作符。

filter操作符

filter操作符用于判断Observable弹射的每一个消息是否满足条件。如果满足条件,就继续向下游的观察者传递;如果不满足条件,就过滤掉。filter操作符的处理流程如图4-4所示。

图4-4 filter操作符的处理流程

filter操作符使用Func1函数式接口传入判断条件,其演示代码如下:

package com.crazymaker.demo.rxJava.basic;...@Slf4jpublic class FilterOperatorDemo { /** *演示filter的基本使用 */ @Test public void filterDemo() { //通过filter筛选能被5整除的数 Observable.range(1, 20) .filter(new Func1<Integer, Boolean>() { @Override public Boolean call(Integer integer) { return integer % 5 == 0; } }) .subscribe(i -> log.info("filter int->"i)); }}

上述演示代码首先通过rang操作符弹射一个范围为[1,20]的整数序列,然后通过filter操作符对弹射的数据进行筛选,筛选出能被5整除的数。

运行这个演示程序,输出的结果如下:

21:45:40.579 [main] INFO c.c.d.r.b.FilterOperatorDemo - filter int->521:45:40.584 [main] INFO c.c.d.r.b.FilterOperatorDemo - filter int->1021:45:40.584 [main] INFO c.c.d.r.b.FilterOperatorDemo - filter int->1521:45:40.585 [main] INFO c.c.d.r.b.FilterOperatorDemo - filter int->20

上面的演示代码,如果使用Lambda表达式进行改写,那么改写后的代码如下:

//使用Lambda形式演示filter的基本使用 @Test public void filterDemoLambda() { //通过filter筛选出能被5整除的数 Observable.range(1, 20) .filter(integer -> integer%5==0) .subscribe(i -> log.info("filter int->"i)); }

distinct操作符

distinct操作符用于在消息流中过滤掉重复的元素,过滤规则为:

只允许还没有被弹射过的元素弹射出去。distinct操作符的处理流程如图4-5所示。

图4-5 distinct操作符的处理流程

下面是一个简单的distinct操作符的使用实例:

package com.crazymaker.demo.rxJava.basic;//省略import@Slf4jpublic class FilterOperatorDemo { /** *演示distinct基本使用 */ @Test public void distinctDemo() { Observable.just("apple", "pair", "banana", "apple", "pair") .distinct() //使用distinct过滤重复元素 .subscribe(s -> log.info("distinct s->"s)); }}

运行这个演示程序,输出的结果如下:

15:05:32.229 [main] INFO c.c.d.r.b.FilterOperatorDemo - distinct s->apple15:05:32.234 [main] INFO c.c.d.r.b.FilterOperatorDemo - distinct s->pair15:05:32.234 [main] INFO c.c.d.r.b.FilterOperatorDemo - distinct s->banana

从输出的结果可以看出,由于消息流前面已经被弹射过了,因此消息流后面的"apple"、"pair"两个元素被过滤了。

本文给大家讲解的内容是SpringCloudRPC远程调用核心原理: RxJava响应式编程框架,过滤型操作符
  1. 下篇文章给大家讲解的是SpringCloudRPC远程调用核心原理: RxJava响应式编程框架,转换型操作符;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!
    推荐阅读
  • 芈月传剧情介绍(这部剧讲的是什么故事)

    芈月与楚公子黄歇青梅竹马,真心相爱,但最后还是被楚威后作为嫡公主芈姝的媵侍远嫁秦国。芈姝当上了秦国的王后,芈月成为宠妃。原本的姐妹之情在芈月生下儿子嬴稷以后与姐姐渐渐分裂,芈姝处处防范打压芈月,而芈月因其对政治的敏感和天份得到嬴驷的欣赏。不料芈姝之子秦武王嬴荡举鼎而亡,秦国陷入内乱。儿子嬴稷登基为王,史称秦昭襄王。为了自己死后的安宁,71岁高龄的芈月下令将整个大秦的军队带到地下为自己陪葬。

  • 怎样让孩子养成做题认真的的习惯?(家长要如何配合孩子)

    怎样让孩子养成做题认真的的习惯规定做题时间,卡好时间检查,按时完成一定要表扬,没有完成要严厉批评。拿走一切干扰做题的东西,什么吃的、玩的、小说杂志、手机电脑全拿走。如果做题不认真说明注意力不集中,可以在日常生活先教会孩子如何平静心情将注意力转移到学习上来。最重要的家长要端正心态。有些题目孩子会做就做,不会做自然就不想做,不用过多批评。遇到不会的时候要适当辅导一下,学会知识才是根本目的。

  • 紫背菜需要焯水吗 紫背菜的功效与作用及禁忌

    2、具体的制作方法是首先把新鲜的紫背菜上面的老梗给弄掉再洗干净,用水烧开,配料需要准备蒜片和青红椒片,还有适量的花椒和小米椒,锅里倒入适量的油烧热,把蒜片和小米椒还有花椒爆香,再加入焯好水的紫背菜和半勺开水。

  • 有的手机碰一下就可以截屏是什么意思(你会了吗?)

    有的手机碰一下就可以截屏是什么意思有的手机碰一下就可以截屏是因为该手机有手势截屏功能,例如华为能叩击2下屏幕截屏。华为截屏方法如下:快捷键截屏,对华为手机用户来说,快捷键截屏可谓是“经典方法”。指关节截屏,对升级到EMUI8.0版本的华为手机用户来说,附带了最新的截屏方式—指关节截屏。使用指关节用力敲击,双击可截取全屏。如果敲击并绘制封闭图案,则会截取所选屏幕。

  • 如何快速的有效减肥(如何快速健康的减肥)

    要知道女性健康的睡眠时间7个半小时,而在这7个半小时中,深度睡眠会激发大脑分泌一种成长荷尔蒙,以指导身体把脂肪转化为能量,这就是那些爱睡觉却不节食的瘦MM常保窈窕的秘诀所在。另外,减肥离不开运动,运动能促进脂肪的燃烧使体重下降。据悉,几盎司的肉类就能帮助一个人增加几个小时的深度睡眠。

  • systemclean已停止怎么办(system停止运行)

    systemclean已停止是系统坏了,需要重新刷机。到该手机官网上下载相应型号的刷包,然后按照提供的操作说明,把手机用数据线和电脑链接,就可以给手机线刷系统了。

  • 早上好最美好的祝福送给你(最美好的祝福送给我挚爱的你)

    愿快乐伴随着你愿幸福笼罩着你好运寸步不离的缠绕着你,祝你天天开心、顺心顺意!

  • 基本的净水方法有哪些 净水的主要方法

    从经济角度讲,蒸馏制水存在着耗水量大、用电成本高等弊病,如果是偏远地区,运输也会是一个麻烦,尤其是玻璃和石英蒸馏水器。

  • 藿香正气水没病能喝吗 藿香正气水没病能喝吗小孩

    藿香正气水中的乙醇大约占40-50%,外用泡脚来治脚气的话,酒精的杀菌消炎作用只能起到短暂的消炎止痒效果,并不能根治脚气。喝藿香正气水是饭前还是饭后建议饭后。藿香正气水是由多种药材制成,如果直接空腹喝的话,有效成分可能会有一定的恶心不适感,此外,藿香正气水中添加的酒精会刺激胃壁,容易带来反胃、呕吐、胃灼烧等肠胃表现。

  • 重庆公交车坠江事件监控完整(重庆大巴车坠江目击者)

    28日10时许,重庆万州区一大巴车在万州长江二桥桥面与小轿车发生碰撞后坠入江中。下车观察时,发现是一辆公交车在和一辆小轿车发生碰撞后坠江,但由于事发突然,未能看清车上有多少乘客。另据重庆市万州区委外宣办官方微博28日通报称,坠江公交车水下位置已基本确定,车载人数、事故原因等信息正在进一步核实,各项救援工作正在紧急开展。此前现场已打捞出一名遇难者的遗体,确定坠江的是一辆22路公交车。