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

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. 感谢大家的支持!
    推荐阅读
  • 关于德国的文化知识(德国身份的文化战争)

    德国身份的文化战争【译者按】4月12日以色列犹太大屠杀纪念日当天,一个涉嫌反犹主义的说唱组合获得素有“德国格莱美”之称的回声音乐奖,引发德国社会的巨大抗议,最终导致该奖被停办4月17日,一名男子因为佩戴犹太小圆帽在柏林。

  • 除甲醛的空气净化器哪种好(除甲醛空气净化器排名)

    冰尊除甲醛空气净化器一直被模仿,从未被超越!除甲醛空气净化器排名,以上品牌产品都非常不错!

  • 夜车歌词(歌曲夜车歌词)

    歌词不记得喝了几个反正你不能开车,今天小编就来聊一聊关于夜车歌词?接下来我们就一起去研究一下吧!该歌收录在曾轶可专辑《一只猫的旅行Forever21》、《羽绒服》中。

  • 蛋黄水母蛰了有毒吗(蛋黄水母有没有毒)

    地中海是蛋黄水母最常见的海域,在当地是很常见的一种有毒水母,虽然没有僧帽水母那么毒,但当地人看见蛋黄水母都会躲得远远的,毕竟被他的触手碰到的话可不是闹着玩的。此外,与其他危险同类相比来说蛋黄水母相对安全一些,几乎对人类没有危险。

  • 最好玩的游戏p4(P社的精度加上文明的自由度)

    根据制作组KubeGames自己的说法,《统治者:希腊战争》是一款结合了历史、神话、策略的独特4X回合制游戏。比如在教程中,玩家扮演的马其顿羽翼未丰,面对强敌雅典的挑战仍需要盟友哈尔迪吉斯之协助。没错,在古希腊世界,尤其是在波希战争之后的古希腊世界,城邦之间的对抗与合作才是永恒的主旋律。

  • 甲状腺结节最好的治疗办法是什么(甲状腺结节需要治疗吗)

    实际上,有很多的甲状腺结节,甚至是大多数的甲状腺结节问题,都是良性的,不用进行治疗干预的结节。因此,发现甲状腺结节问题,首先应该考虑的,不是如何治疗的问题,而是应该判断结节是属于低风险,还是高风险结节的问题。前面我们已经谈到,甲状腺结节,并非一定都要进行治疗。

  • 2022年清明节可不可以给母亲立碑(清明节可不可以给母亲立碑)

    2022年清明节可不可以给母亲立碑从习俗上来看,清明节是可以立碑的。清明节因为是传统的祭祀的节日,所以也被称为鬼节,在清明节祭墓时在祖坟上立墓碑也成了人们的民俗。妇女身体不好等。清明节是传统的重大春祭节日,扫墓祭祀、缅怀祖先,是中华民族自古以来的优良传统,不仅有利于弘扬孝道亲情、唤醒家族共同记忆,还可促进家族成员乃至民族的凝聚力和认同感。

  • 请说出成龙的经典10部电影(最有影响力十大重量级作品)

    小编首先给大家说一下,由于小编上一篇文章盘点“十部欧美票房过千万的华语电影”第一真是神一般的存在!

  • 林一个人资料介绍(林一简介)

    林一个人资料介绍林一,1999年1月11日出生于河北省,成长于辽宁省沈阳市,中国内地影视男演员,就读于北京体育大学国标舞专业。2015年,签约唐人影视。2018年,主演青春爱情剧《致我们暖暖的小时光》。2020年,主演古装奇幻剧《玲珑》;同年,主演都市情感剧《昔有琉璃瓦》。

  • 刮痧的方法(分别需要怎么做)

    刮痧的方法头部须用刮痧板,刮时不需要涂润滑剂,然后每个部位刮30次左右,刮至头皮发热为宜。面部刮痧,面部刮痧,手法要轻柔,以不出痧为度,且面部不需涂抹活血剂,方向由内向外按肌肉走向刮拭。背部刮痧,背部刮痧一般由上向下刮拭。四肢的刮痧,四肢刮痧不可强力重刮,对下肢静脉曲张、水肿,用从下往上刮试。