SpringCloudRPC调用核心原理:RxJava响应式编程框架,其他操作符

take操作符用于根据索引在源流上进行元素的挑选操作,挑选源流上的n个元素。如果源流序列中的项少于指定索引,就抛出错误。

take操作符的处理流程如图4-11所示。

SpringCloudRPC调用核心原理:RxJava响应式编程框架,其他操作符

图4-11 take操作符的处理流程

下面是一个使用take操作符完成10秒倒计时的演示实例,代码如下:

package com.crazymaker.demo.rxJava.basic;

@Slf4j

public class OtherOperatorDemo

{

/**

*演示take操作符

*这是一个10秒倒计时实例

*/

@Test

public void takeDemo() throws InterruptedException

{

Observable.interval(1, TimeUnit.SECONDS) //设置执行间隔

.take(10) //10秒倒计时

.map(aLong -> 10 - aLong)

.subscribe(aLong -> log.info(aLong.toString()));

Thread.sleep(Integer.MAX_VALUE);

}}

运行这个演示程序,输出的结果如下:

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 10

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 9

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 8

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 7

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 6

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 5

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 4

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 3

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 2

[RxComputationScheduler-1] INFO c.c.d.r.b.OtherOperatorDemo - 1

skip操作符与take操作符类似,也是用于根据索引在源流上进行元素的挑选操作,只是take是取前n个元素,而skip是跳过前n个元素。注意,如果序列中的项少于指定索引,那么两个函数都抛出错误。

window操作符

==========

RxJava的窗口可以理解为固定数量(或者固定时间间隔)的元素分组。假定通过window操作符以固定数量n进行窗口划分,一旦流上弹射的元素的数量足够一个窗口的数量n,那么输出流上将弹出一个新的元素,输出元素是一个Observable主题对象,该主题包含源流窗口之内的n个元素。

使用window操作符创建固定数量窗口(滚动窗口)的处理流程如图4-12所示。

SpringCloudRPC调用核心原理:RxJava响应式编程框架,其他操作符

图4-12 使用window操作符创建固定数量窗口(滚动窗口)

一个使用window操作符以固定数量进行元素分组的示例程序如下:

package com.crazymaker.demo.rxJava.basic;

//省略import

@Slf4jpublic class WindowDemo

{

/**

*演示window创建操作符创建滚动窗口

*/

@Test

public void simpleWindowObserverDemo()

{

List srcList = Arrays.asList(10, 11, 20, 21, 30, 31);

Observable.from(srcList)

.window(3) //以固定数量分组

.flatMap(o -> o.toList())

.subscribe(list -> log.info(list.toString()));

}

}

运行这个演示程序,输出的结果如下:

[main] INFO c.c.d.rxJava.basic.WindowDemo - [10, 11, 20]

[main] INFO c.c.d.rxJava.basic.WindowDemo - [21, 30, 31]
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Java核心知识

  • Spring全家桶(实战系列)

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

  • 其他电子书资料

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

2020年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

[外链图片转存中…(img-xVWTZbK9-1712208342713)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值