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

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. 感谢大家的支持!
    推荐阅读
  • 山东省2023年夏季高考外语听力考试考点查询时间+网址

    1月6日晚上,我们将根据考生填报的健康信息为考生分类编排考场。为避免影响本人考场编排,请考生务必及时、准确填报。考生个人信息会影响升入大学后的入学报到,请考生打印准考证后,务必仔细核对个人信息,重点检查名字里有没有同音形近的错别字,务必确保“一字不差”。同时,要认真阅读准考证内容,了解考场、座号等信息,按规定参加考试。

  • 周亚夫死后景帝的反应 汉景帝临死前为什么要除掉周亚夫

    周亚夫死后景帝的反应是愤怒的。下令绝其侯国,不准周亚夫之子嗣为侯。周亚夫的死和其骄纵的性格有关,对此还牵扯出来另外一件事,那就是细柳营事件。

  • 梦见自己抬棺材是什么意思(梦见自己抬棺材的意思)

    梦见自己抬棺材的意思梦见自己抬棺材,五行属土,得此梦身边贵人运多者,彼此求财顺遂,此乃吉兆,夏天梦之吉利,秋天梦之不吉利在外求财者得此梦,往南走吉利,往北走不吉利,得此梦与属羊之人,属马之人共同求财,事业可得提升之迹象,。

  • 大秦帝国大秦赋哪年拍摄的(大秦赋简介)

    大秦帝国大秦赋哪年拍摄的《大秦赋》是在2016年8月份在象山开拍的,等了好几年才拍摄上映。《大秦赋》拍摄时间长,战争场面完全由真人扮演。包括将士们的盔甲,都是量身定制,还有战车、攻城弩车等。《大秦赋》这部历史剧总共78集,由于对集数有要求,分为上下部播出,上部片名为《大秦帝国之东出》,下部片名为《大秦帝国之天下》。

  • 黑鸡蛋与白鸡蛋区别(白色鸡蛋和褐色鸡蛋到底有没有区别)

    峡部的作用是对鸡蛋进行进一步的细加工,形成蛋白膜,这个过程需要大约一个多小时。上文说了,并不是它更健康或者更有营养,而是褐色鸡蛋的产量更大,所以相对较便宜一些。鸡蛋作为最廉价的蛋白质来源,在日常生活中非常容易获取,在某种程度上它可以替代昂贵的肉类,这就是为什么鸡蛋的价格会随着猪肉价格发生波动。尤其是现在生活条件的改善,肉类已经成为了餐桌上的常见品,因此我们蛋白质的来源不再局限于廉价的鸡蛋。

  • 翘嘴鱼的营养价值(关于翘嘴鱼的营养介绍)

    翘嘴鱼的营养价值为大型习见经济鱼类,数量较多。其肉洁白鲜嫩,营养价值较高,每百克肉含蛋白质18.6克、脂肪4.6克,唯多细刺,故有淡水鳓鱼之称,鲜食和腌制均宜。野生捕获的成鱼很难存活,多以冰鲜鱼状态运销。野生成鱼经驯养培育为成熟亲鱼后,人工繁殖出来的子一代原种鱼苗,野性大减,成鱼完全能以活鱼状态进入酒楼饭店的。

  • 虾仁咸饭怎么做(虾仁咸饭做法介绍)

    接下来我们就一起去了解一下吧!虾仁咸饭怎么做用料:大米3杯、胡萝卜1根、三层肉半斤、盐10克、虾仁适量。三层肉炸完以后,把虾仁、胡萝卜、大米先后放到锅里爆炒。将炒好的料放入电饭锅里加水加大米按煮饭键即可。

  • 四川老式榨油方法(四川老式榨油方法是怎样)

    四川老式榨油方法油茶籽是一颗一颗从茶树上采摘下来的。经过脱壳和晒籽后的茶籽被送到油榨坊,接下来就要进入实质性的榨油阶段。将晒干或焙干的茶籽放入碾槽中碾成粉末。将碾碎后的茶粉倒入特制的平锅里烘炒,目的是去除水分,让它渗油。炒好的茶粉倒入到特制的蒸笼中进行蒸熟蒸粘,方便进行下一步的包饼,蒸笼上热气腾腾,香气扑鼻而来。蒸过的茶籽,其油脂的流动性加强,更容易出油。

  • 李秀芝扮演者(82版牧马人中的李秀芝谁演的)

    李秀芝扮演者1982版《牧马人》中李秀芝的饰演者:丛珊。1981年,十八岁的丛珊考入中央戏剧学院表演系;1982年,主演的电影《牧马人》,同年当选《中国青年报》“最喜爱的十大青年银幕形象”;1983年,丛珊参演谢晋导演的电影《秋瑾》;1985年出演《良家妇女》饰演余杏仙。1987年丛珊在法国政府奖学金的资助下进入法国高等戏剧学院学习;1996年,丛珊带着儿子回国定居。2013年8月,参演陆毅、秦海璐主演的电视剧《假如生活欺骗了你》。

  • 合同生效后能否加补充协议?(合同签订后增加补充协议)

    即补充合同中与主合同相冲突的条款,补充协议的条款优先适用。