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

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. 感谢大家的支持!
    推荐阅读
  • 120斤是大基数还是小基数(120斤到底是大基数还是小基数呢)

    大基数一般指超重20斤及以上的人,小基数相对于大基数而言,超重10斤左右,女性身高-110=正常体重范围,若超重可进行规律饮食,避免吃过油腻的食物,避免暴饮暴食,两餐之间不要吃其他食物以及小食品,少喝碳酸饮料,同时配有氧运动,每天做一个小时或45分钟的有氧运动。体重是裸体或穿着已知重量的工作衣称量得到的身体重量。在中医体重为病状名。体重增长除与骨的增长关系密切以外,还与肌肉,脂肪等的增长有关系。

  • 投名状的经典故事(历史上真实的投名状)

    指的是张文祥刺杀两江总督马新贻的事件。时任两江总督的马新贻,结束了当日的军事检阅,打道回府。马新贻当场倒地,第二天一命呜呼。堂堂的封疆大吏遇刺身亡,震动朝野。凶手供出了三点作案动机。其一,妻子和财产被人霸占,找到马新贻喊冤,但马新贻没受理。马新贻劝说张文祥投靠朝廷。因看上曹二虎美貌的妻子,设计将曹二虎杀死。最终轰动一时的刺马案随着主犯张文祥被凌迟而草草了案。

  • 手机卡屏了关机都关不了怎么办(手机卡屏了关机都关不了怎么办oppoR9s)

    手机卡屏了关机都关不了的解决方法:1、长按手机电源键8至10秒重启机器,然后再次点击电源键,点击“关机”。卡屏,游戏术语,某些技术,或者游戏网速不够、电脑内存不足导致游戏界面卡住不能动。卡屏主要是因为显卡太烂造成手机时画面的不流畅,甚至在场面火爆复杂的时候会卡住。

  • 安在旭和李敏镐在一起(安在旭车仁表到Rain李钟硕崔始源)

    剧中与戏外的完美形象一时在中国收获大量观众喜爱。即将还有与林更新、林允儿合作的《武神赵子龙》在湖南卫视明年一月首播。尹施允出演韩国长篇励志大戏《面包王金卓求》,创下50.8%的最高收视纪录。后经安徽卫视引进改名为《面包大王》播出,被中国观众知晓。与李菲儿、张峻宁搭档。帅气长相自然也会被中国观众注意到。09年参演芒果情感大戏《一不小心爱上你》,搭档张翰、江铠同。

  • 描写夏天的成语有哪些(关于描写夏天的成语介绍)

    也可称赤日炎炎。亦作铄石流金烁石流金烁玉流金例:“炎炎火日当天,烁石流金之际,只得赶早凉而行。”后以“浮瓜沉李”比喻夏日的一种生活景象。浮沉於水中的瓜、李,是夏天清凉可口的食物。同“烁石流金”。

  • 现在梨树叶子黄了是缺什么(梨树倒开花啥原因)

    梨树倒开花啥原因网友种植问题:今天我们就借此机会详细给大家分析一下具体原因,但是首先我可以负责任的告诉种植户,梨树“倒开花”现象和是否缺肥没有一毛钱关系,不信我们往下看梨树,苹果树这种“倒开花”现象其实关键防控措施在。

  • 怪物猎人物语大木天谬怎么出(谁知道怪物猎人物语大木天谬怎么出)

    跟着小编一起来看一看吧!怪物猎人物语大木天谬怎么出星7孔,入手地点,蜃楼塔19层,可重复刷,一周目通关,二周目海岛港口或城市港口搭船。因为不是巢穴开出来的,金巢开出来可以多加一个空来着,这游戏应该是最高7孔,然后加上金巢多加一个孔,不过有种叫飞龙种的目觉,是开孔用的,还有别的种类的。

  • 宝宝吃盐的危害 七个月宝宝吃盐的危害

    据了解,目前我国家庭的饮食中普遍含盐量超标。可采用“餐时加盐”的方法,即在菜肴起锅时少加盐,或不加盐待菜肴烹调好端到餐桌时再放盐。此外,豆瓣酱、辣酱、榨菜、酸泡菜、酱黄瓜、黄酱、大酱、腐乳、咸鸭蛋等也应该尽量避免给宝宝食用。

  • 黄山毛峰有种茶特别香是什么茶(茶中珍品26黄山毛峰)

    黄山毛峰是中国十大名茶之一,属于绿茶。产于安徽省黄山(徽州)一带,所以又称徽茶。黄山,隶属歙州,后属徽州。特级黄山毛峰冲泡后芽叶会竖直悬浮于水中,继而徐徐下沉,芽挺叶嫩。

  • 赵薇中餐厅喝蜂蜜柠檬水(中餐厅里赵薇亲制的)

    湖南卫视重磅推出的青春合伙人经营体验节目《中餐厅》上周首播后,赵薇亲制的“赵氏特调”蜂蜜柠檬水一夜之间成为爆款“网红食品”。上期节目中,好喝到让周冬雨飙演技打哆嗦的蜂蜜柠檬水。柠檬酸具有防止和消除皮肤色素沉着的作用,爱美的女性应该多食用。