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

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. 感谢大家的支持!
    推荐阅读
  • 红提不能与什么同食(红提食用的禁忌有哪些)

    红提不能与什么同食?下面内容希望能帮助到你,我们来一起看看吧!红提是一种热性水果,而海鲜和鱼类则多为凉性食材,它们一起食用,会对人类的消化系统形成不利的影响,腹泻和腹痛就是最常见的不良表现。红提是一种高糖分的特色水果,可以有效缓解人类的低血糖,但是它却不适合糖尿病患者食用,不然会让他们的血糖升高,加重糖尿病症状,严重时会诱人糖尿病并发症。

  • 做人不要太过于固执(做人太固执是一种)

    若身患恶疾,不是第一时间选择就医,而是将希望寄托在神明的身上,固执地认为,这一身疾病是因为得罪了神明,怠慢了四方所招致的报应。而守旧的固执,只会让你的生活变得越来越糟糕,甚至会引发一场难以估计的灾难。这种灾难,不仅仅指的是自身退步的愚蠢,也指的是愚蠢人的本身因为固执而引发的不良后果,这样事例在这个社会上比比皆是。可见,被过去的经验控制着的人们,自以为是,固执己见,最终就会引来一场极大的灾难。

  • 在一起半年的说说(半年是什么意思)

    生活也可以是诗,在一路的奔腾中高歌。只要我们牵着手,每一个日子都是幸福。恋爱半年了,让我们两手紧握,将爱情进行到底。风风雨雨永不悔,惊涛骇浪不可怕,地久天长在等待。和傻丫头相恋半年了,我们还有很多个半年。喜欢你对我笑的样子,因为那时你最开心。半年是什么意思:一年中有12个月,这个半年是指12个月的一半,就是半年。

  • 长歌行电视剧演员表(哪些演员出演这部剧)

    长歌行电视剧演员表迪丽热巴、吴磊领衔主演,刘宇宁、赵露思、方逸伦主演的古装历史传奇剧。长歌在幽州粉碎一场阴谋,与此同时身份败露,前往朔州避祸。长歌震惊痛心,力抗隼。然而朔州孤城难支终究陷落,长歌为大局甘愿沦为战俘被押往草原,却意外得知大可汗另有野心。长歌决定暂放私仇,以身涉险拼死破局,不料身陷死局,隼为救长歌不惜与大可汗为敌,两人却阴差阳错天各一方。

  • 强提醒怎么设置时间(强制提醒怎么设置时间)

    设置后,会全屏提前某个时间前的第一条消息。

  • 巴菲特芒格谈券商(巴菲特芒格重申5条投资铁律)

    鉴于两人的高龄,这样的现场交流机会更显得弥足珍贵。一位9岁的孩子在现场对巴菲特和芒格提出了为何投资风格转变的问题。“护城河”几乎是每一年股东大会上巴菲特都会提及的投资理念。巴菲特明确表示,自己做不到加杠杆。芒格则尖锐地表示,很不喜欢养老金的投资,他们不希望市场下滑,因为会造成恐慌。

  • 河北为什么叫燕赵大地(河北省地理位置)

    大部分地区属古冀州,所以简称冀。河北位于华北地区,地跨北纬36度03分—42度40分,东经113度27分—119度50分之间。河北位于首都北京周围,并与天津市毗连。河北东部濒临渤海,东南部和南部与山东、河南两省接壤,西部隔太行山与山西省为邻,西北部和东北部同内蒙古自治区、辽宁省相接,总面积18.77万平方公里,总人口约7600万人。河北是东部地区与关内各省区联系的通道,还是山西、内蒙和广大西北地区通往首都和沿海港口的必经之路。

  • 苦菜的栽培方法苦菜的养护技巧(苦菜的养殖方法)

    太小又会因为水分不足生长的小,所以浇灌的时候要仔细勘察水量的多少,通常土地变得湿润就好。

  • 马琳为什么分手(与马琳谈恋爱被开除)

    在往后的市里比赛中,一路高歌猛进,最终拿到了河北省女子单打冠军。在全国锦标赛上,白杨击败了19岁的张怡宁获得女单冠军,颇高的颜值也收获了一片赞扬。但国有国法家有家规,当时国家队明令禁止队员们之间谈恋爱,这四人触犯了条规,国家队只能忍痛割爱,毫不留情地将四人开除。2009年,白杨代表河北队出战第11届全运会,与牛剑锋搭档获得女双季军。这是白杨带给国乒的最后一份荣誉,这届全运会后,26岁的白杨宣布退役。

  • 秦皇岛城镇职工医保意外伤害住院就医流程

    不属于基本医疗保险意外伤害报销范围的,告知参保患者医疗费用不能纳入基本医疗保险支付范围。《秦皇岛市城镇职工基本医疗保险意外伤害承诺书》留存在患者住院病历中。