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

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. 感谢大家的支持!
    推荐阅读
  • 多冷的隆冬歌词(多冷的隆冬歌词展示)

    以下内容大家不妨参考一二希望能帮到您!原曲为印度歌曲《TunakTunakTun》,中译《东北之冬》。此作品的空耳歌词「我在东北玩泥巴」和「我在大连没有家」成为了时下流行的网络用语。

  • 橘子加酸奶一起吃了怎么办(橘子吃岀肠套叠)

    医生诊断为小肠肠套叠,必须禁食。前面提到的男童肠胃不适住进医院,实际是因为肠套叠导致,肠套叠是小孩常见病,发病原因与酸奶橘子无关。酸奶和橘子同食引起不适,可能是因为食用过多或食物存在卫生问题。原发性肠套叠好发于婴幼儿,继发性肠套叠常发生于年龄稍大的幼儿。原发性肠套叠发病原因尚不十分明确。郭卫红解释,肠套叠的疼痛主要是套叠发生梗阻后引起肠管剧烈的痉挛性疼痛,并为15分钟-20分钟周期性疼痛。

  • b2驾驶证不能开什么车 b2不能开什么车型

    中型客车的定义是车长小于6米且核定载客人数10人(含)以上,19人(含)以下的中型载客汽车。

  • 炖排骨的时候用大火炖还是小火炖(炖排骨记住2放2不放)

    炖排骨汤主要是喝汤,而且品尝的是汤的原汁原味,如果放了这些料就会破坏原汁原味,所以最好不要放,只有用排骨做炖菜或者红烧的时候可以考虑放这类味重的料。

  • 沙漠玫瑰即将开花该如何施肥(沙漠玫瑰即将开花该如何施肥)

    以下内容大家不妨参考一二希望能帮到您!沙漠玫瑰即将开花该如何施肥直接让它接触到根部,这样的就会分泌出有机酸才会慢慢的释放出养分,均匀的给它埋上一圈就够了。一年就不需要给它施用一些长效肥,高磷肥不仅可以有效的促使植株快速的花芽分化,而且又可以起到促根长根效果,在沙漠玫瑰的花期,只施用两种肥就能满足生长需求,让它开花多品质更加好。

  • 襄县属于河南哪里?(襄县简单介绍)

    接下来我们就一起去研究一下吧!襄县属于河南哪里襄县属于河南省许昌市,总面积有920平方公里,耕地面积有96.5亩。襄县是我国烟草文化研究基地,也是生产豆制品的首选基地,其水资源、植物资源以及矿产资源丰富,主要旅游景点有古城墙、百宁岗五岳庙、紫云山风景区等。

  • 方舟生存进化石林矿洞攻略(高山雪原沼泽应有尽有)

    相信在座的沙盒游戏《方舟:生存进化》粉丝们都已经知道了新DLC水晶岛即将上线的消息了吧!但是通过这种做法,《方舟:生存进化》水晶岛DLC能够大幅度的降低游戏的硬核程度,从而能够给你留下让你满意的游戏体验。对于这个有着多种地形、好玩又免费的水晶岛DLC,大家有什么看法?

  • 把握机会的正能量句子推荐(把握机会的正能量句子有哪些)

    把握机会的正能量句子推荐好花盛开,就该尽先摘,慎莫待美景难再,否则一瞬间,它就要凋零萎谢,落在尘埃。机遇只垂青那些懂得怎样追求她的人;人之抛弃机会,绝对多于机会抛弃人。生活中最重要的事情是懂得何时抓住机会,其次便是懂得何时放弃利益。当良机出现在我们面前时,我们要及时抓住它们,利用它们,这是生活的一大艺术。人生成功的秘诀是当好机会来临时,立刻抓住它。正如风只对于能利用它的人才是动力。

  • 梦见打官司预示着什么(梦见打官司是什么预兆)

    我们一起去了解并探讨一下这个问题吧!梦见打官司预示着什么谈婚论嫁的人梦见打官司,说明外表装饰,不胜内在含养,宜互相信赖婚姻可成。创业的人梦见打官司,代表人事失和气。调整一下可望顺利。准备考试的人梦见打官司,意味着虽有小缺失,但不影响大局,有希望。梦见打官司,表示会发意外之财。

  • 今宵酒醒何处杨柳岸晓风残月(关于今宵酒醒何处杨柳岸晓风残月)

    今宵酒醒何处杨柳岸晓风残月?怕是只有杨柳岸边,面对凄厉的晨风和黎明的残月了,今天小编就来说说关于今宵酒醒何处杨柳岸晓风残月?今宵酒醒何处杨柳岸晓风残月今宵酒醒何处?“今宵酒醒何处?杨柳岸晓风残月。”这两句妙就妙在用景写情,真正做到“景语即情语”。这几句景语,将离人凄楚惆怅、孤独忧伤的感情,表现得十分充分、真切,创造出一种特有的意境。难怪它为人称道,成为名句。