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

springcloud与rpc的区别(RxJava响应式编程框架)

时间:2023-08-22 作者: 小编 阅读量: 3 栏目名: 钓鱼百科

过滤型操作符本节介绍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. 感谢大家的支持!
    推荐阅读
  • 重庆 玛雅海滩水乐园(重庆加勒比海水世界开园)

    接下来我们就一起去了解一下吧!重庆玛雅海滩水乐园

  • qq头街每级该设置什么(QQ专属头衔和等级头衔怎样设置)

    下载腾讯QQ,点击打开QQ选择联系人,群组点击打开,今天小编就来说说关于qq头街每级该设置什么?下面更多详细答案一起来看看吧!qq头街每级该设置什么下载腾讯QQ,点击打开QQ。选择设置专属头衔,上面就是等级头衔,也是可以设置的。填上自己喜欢的名字后确认。群里发言都可以看到专属的头像了。例如管理员,或者军师,这些名字。

  • 一亩田要多少斤谷子(在农村现在都还在用的亩)

    在农村不仅保存了较为传统的民风民俗,还保留了一些至今已近不在使用的度量衡。亩是中国市制土地面积单位,一亩等于六十平方丈,大约666.67平方米。十五亩等于一公顷。选取60平方丈是因为中国古代的计数方法。现在计数大都以十为一个单位进位,古代的进位则多以"60”为一个单位进位。比如一甲子为60年等。这个单位是淘汰最快的,应为他的准确性很低,使用率就低。最后还有就是斤,这个重量单位现在用的都很多。

  • 正宗鸡蛋灌饼和面方法(正宗鸡蛋灌饼和面方法是什么)

    正宗鸡蛋灌饼和面方法选材:鸡蛋灌饼用的是死面,做的时候面用热水烫过,最好是40度的温水效果最好,所以烙出来的饼还是很软的。和面作为鸡蛋灌饼的重要环节,和面技术的高低对鸡蛋灌饼的口感往往会有不小的影响。

  • 酸辣脆瓜怎么做(爽口脆瓜的做法)

    我们一起去了解并探讨一下这个问题吧!黄瓜去皮吃起来口感更佳。米醋和辣根搅拌均匀。黄瓜一切为二拍散再片成小块放入容器中倒入米醋辣根汁、糖、盐、味精香菜和蒜粒拌匀入味即可。拌好的酸辣脆瓜盛入盘中即可。

  • 石榴树苗大概多少钱一棵(番石榴树苗多少钱一棵)

    运输时要注意不要损害苗木的根系,不建议去距离比较远的地方购买石榴树苗。肥料应根据石榴苗的生长情况确定施肥量和施肥品种。

  • 煮鹅蛋怎么做好吃(煮鹅蛋如何做好吃)

    煮鹅蛋怎么做好吃食材:鹅蛋500克、葱1根、老抽20克、生抽20克、白糖50克、油1克、姜三片、蒜子三颗、盐5克。鹅蛋带壳冷水进锅,煮开后改小火继续焖煮十五小时。鹅蛋迅速出锅,用冷水浸泡,冷后剥壳。腌制,放老抽均匀涂在表面,放置二十分钟,期间隔三四分钟翻滚一次,以便上色更均匀。少许植物油,爆炒姜蒜,倒入鹅蛋,翻炒一分钟,放水500克,葱段下锅,放下盐、生抽,白糖,卤料包开始卤煮,猛火烧开后改慢火。

  • 承德养老保险怎么用微信缴费 河北省养老保险微信怎么缴费

    承德养老保险缴纳11月25日截止缴费人可以选择200、300、500、1000、3000、5000、8000,共7个档次中选择一个档次缴费。经河北省税务局认证,通过网络接入税务系统的各类自助设备,包括税费一体自助终端、供代征单位人员征收的便携式自助终端。有两个参保登记的缴费人注意选择本人需要的缴费地)4、微信城市服务。支付宝“市民中心-地方在线服务-居民养老缴费、居民医保缴费”模块,根据提示缴费。

  • 马拉之死作者是 马拉之死的作者

    3、这幅画通过去除所有的动作、所有的寓言人物以及弱化所有的谋杀痕迹,创作出一副革命者圣像,成为法国大革命史上的经典作品。

  • 儿童怎么办理医保卡(儿童如何办理医保卡)

    儿童怎么办理医保卡?监护人登录市社保局网站儿童医保网上申报系统,填写参保信息,打印登记表;,我来为大家科普一下关于儿童怎么办理医保卡?儿童怎么办理医保卡监护人登录市社保局网站儿童医保网上申报系统,填写参保信息,打印登记表;被保险人向居住地社保机构提交申请材料,社保机构受理申请材料,即进入审核程序;可以到指定银行付款,缴费成功将获得个人缴纳社会保险费转移证明。