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

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. 感谢大家的支持!
    推荐阅读
  • 漫威四大伪超人哪个更厉害(到底谁能成为漫威的)

    亥伯龙永恒族最后幸存的成员,作为永恒族成员,身体自然可以收集宇宙辐射能量然后转换,也可以操控能量,拥有惊人的力量,速度,耐力,灵活度以及超强的恢复能力,甚至双眼也可以发出热射线。当然弱点就是和超人一样,亥伯龙惧怕文石。

  • 吃鸡战场怎么得到一个新皮肤 吃鸡有没有出新皮肤

    玩家只需通过正常游戏就可以或许通行证经验,这也是最简单的方法。

  • 榴莲怎么存放(榴莲存放的方法)

    下面更多详细答案一起来看看吧!榴莲怎么存放首先先用保鲜薄膜裹住果肉,放置在冰箱最底层冷藏,建议三天内吃完。也可以用报纸裹住果肉,放在阴凉处,尽快吃完。还可以用冷水保存,用塑料袋或者保鲜膜将果肉密封好后放在冷水里泡着即可,注意水不要没过果肉。

  • 发动机噪音降低方法(发动机噪音成因和降噪方法)

    发动机噪音成因和降噪方法发动机出现噪音可能是以下几种情况形成的:1.积碳积碳就像是人体身上的血栓,只是有一点的话不太影响,但是如果多了也是会出现问题的。如果是发动机声音明显比之前大,可能需要换机油保养一下或者是发动机内部积碳过多,可以适当清理一下。严重积碳时会影响汽车的性能,带来异响油耗增加,动力下降。

  • 生白芍的功效(生白芍的功能主治)

    以下内容希望对你有帮助!生白芍的功效生白芍能养血敛阴,柔肝止痛,平肝阳。生白芍味苦、酸,微寒,归肝、脾经。生白芍能调节机体免疫系统。生白芍有镇静,抗惊厥,镇痛,降温作用;白芍总甙能增强正常小鼠的学习和短时记忆,但不影响其长时记忆。生白芍对肝脏有保护作用,对胃液分泌有抑制作用。生白芍能显著增加小鼠心肌营养血流量,有升高血压和增强心音作用。生白芍可抑制血小板聚集和血栓的形成。

  • 干鱿鱼怎么做好吃(干鱿鱼这样做超好吃)

    跟着小编一起来看一看吧!干鱿鱼怎么做好吃把芹菜切成段,青、红杭椒切圈。生姜切成片,蒜籽切成片,洋葱切成丝,锅中加水。下入鱿鱼,加适量的黄油去腥,捞出后清洗干净。起锅烧油,下入鱿鱼炸三十秒,炸好倒出。锅中加油下入生姜蒜片干辣椒花椒炒香,翻炒完成后加入鱿鱼加入少许老抽调色。

  • 描写浴佛节的诗句(描写浴佛节的诗句有哪些)

    描写浴佛节的诗句《渌水曲》唐代:李白渌水明秋月,南湖采白苹。荷花娇欲语,愁杀荡舟人。常恐秋风早,飘零君不知。《采莲曲》唐代:白居易菱叶萦波荷飐风,荷花深处小船通。逢郎欲语低头笑,碧玉搔头落水中。采莲姑娘碰见自己的心上人,想跟他打招呼又怕人笑话,便低头羞涩微笑,一不留神,头上的玉簪掉落水中。

  • 发财树的做法和配方(发财树的做法和配方是什么)

    下面希望有你要的答案,我们一起来看看吧!发财树的做法和配方用料:水450克、葱花少许、姜末少许、生抽适量、盐适量、料酒少许、花生油适量、西蓝花一颗。西蓝花摆成一朵朵儿的过凉水洗净。找个好看的盘子,西蓝花的底部不要扔,切一半,摆盘,做发财树的树干。洗好的西蓝花过开水焯一下,加少许食用油和盐,给西蓝花提亮。起锅烧油,制作汤汁。放了蚝油,酱油,五香粉,蒜末。做好的汁浇在摆好的发财树上,美味就要大功告成了。

  • 马尔福和哈利波特拍的电影(哈利波特主演变化大)

    哈利波特主演变化大文/蓝凤凰一晃距离《哈利波特》系列电影问世已经过去了18年,从2001年到2011年的8部系列电影,不仅为书迷还原了小说中那个光怪陆离的魔法世界,更是为影视工业输送了一大批童星们,这批童星如今多数仍旧。

  • 仙人掌可以吃不 仙人掌也能吃吗

    仙人掌是我们生活中很常见的一种绿植,生命力旺盛寓意坚强和倔强,经常在网上看到吃仙人掌有很多好处。仙人掌可以吃不仙人掌是可以吃的。食用的仙人掌不能随便选择,建议大家在市场里购买,一些供欣赏或者野生的仙人掌可能含有毒素呢!