粉丝1618获赞1.1万

家伙八中提供了死追母流,他可以对集合进行操作,可执行复杂的查找、过滤、驱虫、排序等操作。 今天给大家分享两块,第一呢是 stream 流,对立斯特的便利过滤,查询驱虫和排序。第二部分呢是 stream 流的调试,看一下代码视力, 这里有一个学生集合,接下来呢,通过几个需求对 stream 进行一下了解。首先呢,便利集合,打印学生数据,查询高三的同学,这里呢,咱们可以通过 filter 进行过滤,然后过滤班级等于高三的。 这里有一点注意的是, filter 是个中间操作,他返回的是个新的流,所以说咱们需要将流转换成集合,查询学生张三的信息。这里呢,第一步先是过滤,过滤出姓名等于张三的。接下来呢,咱们通过 fund first 返回列表中的第一条数据。这里呢, 需要注意一点, fund first 和 fundini 呢,都是查找第一个元素,但是呢, fundini 只有在串形情况下,它返回的是第一个元素,如果并行的话,它是一个随机的元素。获取年机信息,首先呢,咱们需要根据年机将 list 转换成脉搏, 然后调用 distinct 方法就可以获取到对应的年级信息。根据学生年龄进行排序,这里呢,咱们调用 stream 的 soti 的方法, 然后根据学生的年龄进行排序,这里呢是升序的,如果是降序呢,需要教调用 reverse 的方法。根据年级进行分组,咱们通过格尔沃拜对年级进行分组,最终呢是返回一个 map 类型的集合。最后咱们看一下 stream 的调试,这里呢,咱们选择根据学生年龄排序进行调试, 这里可以看到一个追踪当前流的调用链,咱们点击完成之后呢,会看到整个调用的过程还是比较方便的。最后小伙伴们在工作中还用到了哪些 stream 的操作?评论区分享一下。


那么咱们接下来继续来看啊,咱们在之前的话呢,讲了 fire, 那讲了 fire 之后呢,同学可能会有疑问说,哎,我现在这个 fire 只是罗列出我现在有什么东西,但是如果想去看到这文件里面有什么内容,或者说我想文件里面去写点内容这个事的话呢, fire 好像搞不定,没有加 api 啊。那没错啊,因为 fire 的话它指的是什么,它只表示这些是目录,还有这些文件的原信息而已。如果想操作里面的内容,那么这个时候的话呢,就需要学到 i o 流了 啊。所以的话呢,咱们接下来看一下啊。 l 流,咱们前面说过了, l 流呢,有方向,有输入输出,有单位,有字节字符,对不对? ok, 来咱们看一眼啊。所以接下来我们说来看的是这个字节流啊。字节流上市,我们知道它的副类呢,就是我们说的 input 啊, stream, 还有它的这个 out output, stream, 对吧?哎,这俩东西。那么在下面的话呢,会有很多实现的子类啊。那这个子类的话呢,就是我们会看到比如说文件的一个操作啊,一个文件操。 ok, 首先看到这些在 l 里面的命名啊,大家看到了什么啊?他会以这个副类的这个名称来作为后缀,看到没有啊,后缀。然后呢,前面就表示他的操作的类型都是操的是文件啊。好,那么咱们前面已经特别讲的我提交过一点,就是实质上啊,咱们所有的文件,他本质都是什么,都是恶禁止文件对吧? 但是呢,我们是人为的吧,分为文本文件二禁止文件。所以呢,在我们的这个 jk 的 api 里面才会有自己的字符条这么一个说法啊。好,那么咱们接下来来看一下啊。这边的话呢,我们首先来完成一件事,就是来实现这个文件的拷贝,那这文件的拷贝呢?实际上来说他适合在什么场景呢?跟我来看一眼。 来我们画一个图大家看一下。这时候的话呢,我们这样比如说啊,我们现在的话呢,想去注册一个微信号对吧?注册微信。那这个时候的话呢,一般我们会选择一个头像对不对啊?比如说选一个帅照 啊,很很帅的头像。然后的话呢,这时候就是说白就是一张什么这张图片吗?对不对?那张图片的话呢,一般来说我们肯定是需要传到我们的,这个叫后端,就是我们的微信服务端啊, 微信服务端好说一张图片的话呢,就会传到了微信服务端。那这个时候的话呢,实质上来说我们知道这个时候的话呢,这个图片啊,就是会会流的形式传过来。比如说这个时候的话呢,相当是一根管道是吧,这边呢是一根桶,这也是个桶, 然后这个桶的话呢,就要把这桶的水呢流过去,怎么办呢?哎,这时候的话呢,需要一个管道,通过管道把水的东西流过来啊,所以我们形象称为流啊。好了,这里头的话呢,我们会看到什么?就是在这边的话呢,车上我们服务端需要拿这个东西,怎么拿呢?那这个时候呢,很显然我需要把读到这个流传过来这个数据, 所以读这时候对我们来说的需要到什么叫做输入流啊,输入流,那一般我们读完之后,我们需要把这内容存起来,可能存到这个本地的一个文件夹,也可能存到一个远程的共享的一个文件服务器, 所以这个时候总之需要存起来是吧,要存到这边来啊。好。那这个时候的话呢,就是什么?就是一个输出流啊,你要写,你读完之后你要写,所以待会看到什么呢?说上我们这个文件的上传就经历了两个环节,一个是输入流的读取,一个输出流的保存,两种结合才完成这个文件的一个保存。 ok。 那么在我们现在的话呢,我们没有讲服务端,所以我们现在是在本地,那本地怎么办呢?那很简单,道理是一样的,我们假设现在的话呢,有一个什么,有一个文件啊,就是比如说叫 a 啊 a 点这批句, 然后呢,我们需要将这个文件的话呢,进行一个什么,进行一个拷贝啊,我们需要备份一份,其实东东西就这个意思对不对,我们现在把它变成到本地来啊,然后再必点 zpg, 看到吗?哎,必点 zpg 啊。好。 所以这时候的话呢,其实也是一样,我们首先需要个什么?首先需要一个输入流啊,一个输入流去读取这这里面的什么稳定的内容,然后再通过一个输出流把这个读到的数据 写出到我们这里面来啊,写出到我们这边未来。 ok? 好。因为你看,其实上来说道理是一样的,我们相当于这个上传,就是将本地的一个文件放到什么复制到服务器,这个意思对不对啊?所以就是一个复制的动作而已。 好。所以这时候的话呢,我们需要来做两件事。第一件事的话呢,我们现在学习什么?这个输入流怎么玩对吧?读东西怎么读,然后再来我学习学习一下这个输出流怎么玩啊,怎么写。好,两者只要掌握了之后呢,我们就可以把它完成个拷贝了。好,那么我们清晰的这个东西之后,接下来跟着我来看看啊。我们现在的话呢,把这个先关掉。 下面我们来看一下。我们来讲一个什么讲一个文件的一个读写啊,就是来先讲读啊。那这一头我们先来说一下这个输入的方向啊,待会跟着我来看一眼。那这时候的话呢,我们来先讲的就是我们的 fire input。 okay, 写一下啊。 fire input stream test。 好。这一头我们来演示什么呢?来演示读写读取啊,读取 二进制文件的内容。好,那这一头我给他准备好了一个二进制的文件。大家可以看到这边是有一个叫幺八的编剧啊,就是一头一首航母啊,一首航母。好,那咱们来看一下。那这个怎么读呢?那看快看一眼啊。 首先我们给他相关性的东西先写好,在这里头啊,所以他初学的时候可能会忘记 a p i, 但是关系不大。 a p i 忘记的话呢,记得去看 a p n 档就行了,对不对? ok, 那咱们跟着我来看一眼啊。第一步我们首先的话呢,要明确什么呢?明确要读取的文件啊 是吧?第二的话呢,我们可以创建一个什么一个文件的输入流对吧?准备读取哪个文件啊?确定读取哪个文件啊。 ok, 好。第三个的话呢,我们在这里头的话呢,我们这样啊,就创建一个文件对象啊, 创建文件对象对不对?哎,好。那么接下来的话呢,就是开始什么?开始读取文件内容,然后呢, 第四步呢,我们需要去关闭文件流啊,注意文件流的话呢,是一种关键的系统资源,你打开之后呢,你需要手工去手动去关闭,否则的话呢,这个流啊就会开在那里就浪费着了啊。 ok, 好,那咱们接下来跟着我来看一下。首先第一个要创建什么文件对象,那很简单,就用到咱们之前学到的这个 file 啊, file file 等于这个 new file。 好了,这一头的话呢,我们可以指向这一艘航母,咱们来看一下啊,这艘的话呢,是在我们地盘,然后我们看一眼, 这是我们的这个抓 e 对不对啊? ok, 来写下抓 se, 然后呢,二零二好跟上我们这个叫做幺八点 png。 好了,这样就可以了。那有了这个文件之后呢,接下来我们可以在下一个就是来创建文件的一个 输入流,叫 input stream。 好,我们可以看一眼这边我们先站起来给它置为一个空,然后呢,接下来再给他做一个初始化 input stream, 然后等于这个 new fire english dream。 好,待会跟着我来看一下这一套的话。这里面的话呢,需要俩东西,就是你可以直接给他传个文件的名称,看到没有,形象来说也是意味什么呢?意味着上面这一步啊,不是必须得有的啊, 你可以直接传这个东西进来是没问题的。或者呢,你会再往下看啊,也可以干嘛,也可以传一个文件啊,所以的话呢,咱们可以把文件呢扔进来。 好,这这回的意味什么?意味着咱们此刻啊,这个输入流怼到这个文件可以干嘛?可以读了。 ok? 好。那么咱们接下来看一下啊。这头的话呢,我们给他做一个 try catch 也。此刻他可能会干嘛?可能会找到文件没找着。哎,你看,这是我们前面讲的异常的一个处理机制啊。就是这一头的话,他可能猜测到你根本就没有这个文件,因为你可能瞎写的,你可能写成幺九,懂了没有,直接是二零,这不就没有吗?所以的话呢,他这个异常机制是让我们做好预案, 可能别人写了一个不存在文件,我们可以做些什么样的操作, ok 啊,这时候的话,你可以做一些你要做的异常控制啊。好。那么接下来的话呢,有了这东西之后,我们就可以开始读取文件的内容了。我们来看一下, 那怎么读取呢?哎,这时候就需要什么?需要里面的 a p r 了,对不对? a p r 里面的话呢,咱们来看一眼啊。这个时候的话,就是由 input 点 我们看到这个名称取得特别好,见名之意是吧?你要 red 看到没有读,如果这个东西还看不出是读,那没办法了,对吧?所以这个命名非常的好靠谱啊。大家可以看到这里面这个读啊,他实际上来说有重载的方法,对不对?是不重载啊,你看方向名相同,参数类要不同,那两东西有什么差异呢? 来看一眼啊。时尚上面这一个啊,你会看到这边是没有代餐的。这个东西的话,是每一次读一个字节啊,一个字节一个节读。而下面这个东西的话呢,是什么?你看到这边,你可以传一个字节数组给他,哎,就什么意思呢?就是说他每次是按照一个字节数组来读,就好比用这 装水一样。上面这个东西的话呢,比较没有思考啊,他就是什么?他就是我每接一滴水就走一次,接一滴水走一次,你看这接的多累啊。啊,这就像什么?就像带了个桶对吧,我带了个桶就接水,好,桶接满了我再过来。 ok, 就这意思啊。但如果是到最后一次,可能桶没接满,也有可能啊。 ok, 也可能剩下池库的水就没那么多啊,那也可以。好,那好了。所以接下来我们先来看第一个方法叫绿啊,来看这个东西,然后的话呢, 我们后面那个异味后面的用啊。好,那这个时候这个东西我们看这边也有可能有异常,因为你可能读读的时候呢,出现了异常啊,这只手我们来看一下这 i o 异常, ok, 读取的时候 i o 异常。 那好,那接下来我们来看下这里面啊,这里面的话,他去读的时候我们怎么读?我们想我并不想读一个,我们想读所有。 ok, 因为这里面的话,很显然这文件里面不可能只有一个字节,对吧?哎,说我想读所有,那怎么办呢?好,所以这个时候注意跟着我来看一下啊。这个时候我们需要来看这个方法,点过来 你看一眼啊,在这个方法这里面的话呢,他会告诉我们,首先啊,这里面会读到一个下一个字节,然后呢,把这数读到这个数据里面的下一个字节发给你。当然他说如果是负一,什么意思呢? if the end of the fire is rich 就什么意思啊?就是读到这个文件的末尾,他会给你返复一。好了。那好,那意味什么?意味着如果返复一表示文件读完了, 那好,那我们就有了一个什么一个关键的点了,就是我们现在希望干嘛?我们是肯定是希望是只要只要没有读到文件末尾, 就一直读对不对?哎,好,那这时候的话呢,一直读是不是用到什么,用到我们的循环对不对?循环就要结合起来了。 ok, 所以咱们前面学的知识就要串起来啊。那好,你看这个时候我们可以很明显可以写什么?写一个 why 对吧?写个 why 啊,只要是吧,只要就怎么怎么怎么对不对。好了,这位东西是要不到这样,不但没有末尾对不对,那怎么办呢?好注意这时候呢,把这行拿过来。 所以这个时候我们可以这样来做啊,跟着我看一眼啊,把这个呢先去掉,我们先定好一个 red 就行了。然后呢,这是这个变量。然后接下来在这边的话呢,我们把这个 red 呢给他指向我们刚刚这串内容。好,接下来我们知道这东西会反映一个结果对不对,那么我们就可以把这东西拿过来框起来,做一个整体来看。 这个整体来看的话,就说如果这个结果不等于负一,是不是意味着什么?意味着这个东西的话呢?他没有那么稳,能看懂这意思吗?哎,就是这里面的话呢,做一个整体来看啊。好,那我们就把这个每次读的结果呢,放给这个什么,放给这个 red, 而这个 red 只要不等于负一,那么这个调整成立,成立的意味着往下走。 ok, 那好,这时候的话呢,我们可以先简单的做一个输出啊,来。此刻输出这个内容的话,对我们来说没有意义啊,因为字节东西的话,咱们看了也并不清楚里面图片长什么样,而且一般我们也并不需要去看一个二进制文件里面的字节。这是这是一个一个一个过程啊,咱们先把这东西要整好 好看懂了吧。啊,这就是我们说,只要还没到末尾,我们继续读啊,就这个意思。 ok, 好,那咱们接下来的话呢,再来看一下它最后一步是什么?是关闭流。那关闭流放哪呢?一般来说我们会有一个叫 finally 的东西啊,然后在这里头的话呢,去关闭流。好,所以此刻要关闭这个流,关闭哪个就是这个输入流啊。 那好,这时候的话,一般我们要做什么呢?注意我们先做个判断,如果这个东西不等于空,哎,我们就要做一个什么事,就是要做一个 input stream 的一个 clothes 的方法啊,用 clothes 好,有这边这个 clothes 啊,掉的方法 好,有一个什么,拆开看懂吧。哎,这看起来很长很长是不是啊?没有关系啊,后面我们还在讲一种比较简洁的方式啊,但这种方式的话呢,也是很常见的,所以呢,你咱们也需要掌握。 ok, 那注意这里面为什么需要做飞空判断啊,同学可以思考一下啊,你这个可以考虑一下。如果你这个时候的话呢,正在屏幕看这个视频,那么你可以暂停一下啊,然后思考一下为什么这里要做一个飞空判断。 好,那我来说一下,因为道理很简单,是这样子的。咱们最初的话呢,这个流呢,是一个空的对象,然后呢,紧跟着会做一个初始化对不对?但这个初始化的动作不一定成功,所以待会也可以看到这边会有一个什么一个文件会找到异常,如果出现这个异常,那么这个点的创建不成功。 但是的话呢,咱们这个 final 里是无论如何你正常不正常都会执行的。那你会看到。如果说假设上面这地方,举个例子吧,我瞎写了一个东西是九,那么就发生异常。发生异常的话,到这一边的话呢,这东西肯定是个空的,对不对?你没有做这个非空判断,然后拿一个空对象的地方,可漏子 是不是雪上加霜,又爆又空的这异常。哎,这样拿出来给他体验一把。最明显啊,没有这个飞空,我们直接 close 啊,直接 close 好,看一眼效果啊,来,我们看一眼效果啊,来看看。那这时候的话呢,图片是不存在的,我们来看看。走一个。好的。 看到你看这个时候翻什么发生,就是我们这个叫 fire, 就是在控制异常是吧,因为无论如何都会执行啊。控制异常的发生,看到没有?哎,但是呢,如果说我们把这张代码去掉,我们把这个放出来。 好,那这个时候的话,我们再跑一遍啊,来看一下。好,你看到那个空指的异常看到没有?是没有出现了, ok, 这个时候的话呢,是真真正正的那个什么那个文件,我找到异常出出来了。 ok? 好,就这意思啊。好了,那咱们接下来的话呢,把它改正。然后呢,我们来看一下输出的内容。好,走一趟。 好,我们看到书很多,对吧?然后最后肯定是 ok 的啊。好,到此结束,所有内容都会转一个数字给咱们输出来哈。好了,那这样的话,我们就完成了一个输入流的一个操作。但此刻这个东西的话呢,它相当完成了我们拷贝的一部分。我们还没有结束。下节课我们来谈的是一个输出流,然后两者结合,咱们的文件拷贝就搞定了。 ok。

接下来我们来学习死吹母牛的生成方式,在讲解这个生成方式之前,首先我们来回顾一下体验死吹母牛的过程。 这里我有一个集合,这个集合中有一些数据,我们可以通过这个集合生成一个流,生成的流之后接下来我们通过 falt 来过滤一张开头的,我们就得到了一张开头的数据。再接下来我们通过 flt 过滤长度为三的,我们就得到了长度为三的数据。那么 最后我们通过说一起来指定我们对这些数据进行的操作,就是 sutm 点 out 点,不让他烂,把这些数据在控制台输出。 那么在这个过程中我们刚才说到了三种操作,一种是生成流的操作,一种是中间的过滤操作,最后 是我们在控制台输出的操作,那么在这里我们说一下我们此车美流的使用,它是分为三种操作的,一种是生成流的操作,一种叫中间操作,一种叫终结操作。来 我们说一下此吹母牛的使用,它分为生成牛、中间操作和终结操作。我们先来看生成牛,他是通过数据源集合或者数组等生成牛,比如说我们通过这个集合 act 点 steam, 也就是我们开始定的是个奥瑞利斯塔嘛,这个集合他的变量名叫做利斯塔,我通过这个集合调一个四十五方法就能够生成一个流,中间操作, 一个流后面可以跟零个或者多个中间操作,其目的主要是打开流,做出某种程度的数据过滤或者映射,然后返回一个新的流,交给下一个操作使用。比如说我们不要 方法,他就可以用来进行中间操作,他操作完之后还是一个死水目流。最后我们来说终结操作,一个流只能有一个终结操作,当这个操作执行后,流就被选光了,无法再被操作,所以这必定是流的最后一个操作,比如说这个 fex 方法,他就是用来为数据 指定对应的操作的,他是一个终结操作。好了,知道了我们死吹美流的这三种使用之后,接下来我们讲解第一种使用就是生成流,我们死吹美流的生成方式有很多种,这里我们讲解三种常见的生成方式。先来看第一种就是 可耐克人体系的集合,可以使用默认方法 steame 来生成流,注意这说的是可来客人体系的集合。那么第二种是迈普体系的集合,他不能直接生成流, 他只能间接的生成流,一会我们再去演示。第三个就是数组,可以通过 steam 这个接口中的静态方法来生成流,看这里 这个方法是一个可变参数的,他当然可以传一个数组了。好了,知道了这三种常见的生成方式之后,接下来我们到程序中去演示一下。 来看这里我新建好了一个包,在这个包下建好了一个类,在这个类里面有死垂母瘤常见的三种生成方式,注视信息。接下来我们先来演示。第 一个可耐克人体系集合来生成四川母牛,那么这里我们直接来一个利斯特吧,利斯特斯脆,利斯特,又一个奥瑞利斯特,那么这里写个斯脆。 接着我们 list 调用一个死去母方法,看出 ltv 生成,左边的内容,给他起个名字就叫 list 死去母。 接着我们再来一个赛特集合,死去赛特,又一个哈西赛特,这里写一个死去, 然后赛特点死去掉这个方法。 ctrl alt a 生成左边的内容,给他起个名字叫赛特死去。 来看一下,这就是我们可耐克人体系的两个儿子利斯特和赛特,得到他们对应的 steam 流的方式就是使用这个默认方法 steam 来 生成牛的。好了,接下来我们来说一下迈普体系的集合,他不能直接生成牛,但是他可以间接生成, 什么意思呢?来看一下 mate 死去,来切换一下输入法啊死去, 然后后面跟一个引推这,然后写个 mate, 你有一个哈西 mate, 这里写上死去, 后面是引踢者,那么拿到他之后,我们可以这样来做卖点,认真看踢赛特 得到箭的集合,箭的集合是一个色彩集合,那么色彩集合就可以调用这个死去母方法了。看完出艾奥特威生成左边的内容,那么这一次我们得到的就是他 剑的这个死却母瘤好了,他是间接的得到瘤的啊。来再来看 mat 点 w, 这是得到他值得集合,你看这个 wc, 他返回的是个可来开始集合,那么这个可来开始集合,他就可以调用这个死去的方法来生成牛。 ctrl altv 生成左边的内容,那么这里就是我们的歪六所对应的死去母牛。 那么再接着来一个迈普点 nt 四艾特来看一下,他得到的也是一个四艾特集合,那么这个一样可以调用 steam 方法。 ctrl altv 生成左边的内容,那么这里是我们的这个箭之这对象所对应的理由。 好嘞,那么这是迈普及和间接的生成流,这是箭所对应的流,这是直所对应的流,这是间直段对向对应的流。好了,接着我们来说第三 个数组,他可以通过死去母接口的静态方法来生成流。那么在这里首先我们来定一个数组,死去中国号 s t r。 那么这里我们给一些数据。 哈喽, word 加了。好嘞,有了这个之后进来看一下啊,我们用死去他的 静态奥方法,他是可变参数的,所以我们可以直接传一个数组过来, ctrl altv 生成左边的内容,这样我们就得到了 个这个数组,这串数组对应的流,我们该起个名叫 s t r 哦,瑞斯群。好的,那么这里他既然可以 传一个数组,而且他是可变参数的,那我直接传可变参数是不是也可以呢?来看一下,那就是死吹点 out, 那么这里我们直接传这个, hello, word 加吧, ctrl altv 生成左边的内容,这样我们一样得到了一个这个字符串数足所对应的这个理由。 那么在这里我们还可以通过这个什么点啊,来给一个樱桃类型的数据,十二十 三十 ctrl altv。 认真看,那么这是我们因特数据所对应的 ctrl m 零。好嘞,那么在这里泛行他写的是引帖点啊,这个你得知道。好嘞,这样我们就通过这几种方式来 生成了我们的牛。注意,迈普集合他不能直接生成牛,但是他可以间接的生成他的腱直 以及建制对等一等流。我们的可拉伸体系的集合和我们的数组,他都是有方法能够直接生成流的。好了,到这关于四川美流的常见的三种生成方式我们就讲完了。

哈喽,今天来给大家分享一下我们工作中常用的一些 stream 流操作。那首先我们来看第一个演示, map 的用途,可以进行一对一转换, 那如果说我想要把这个集合里面的字符串转化成这样的一个 use 的对象,并且直接收集成一个集合呢?我们可以直接用这样的一个写法。 第二个,一对多转换,如果说我想要把这个集合里面两个大的字符串以空格进行拆分,拆分成六个小字符串呢,我们可以这样来操作,那我们可以用 flat map 这个方法,那这个方法操作的时候,其实就是先把每个元素进行处理, 返回一个新的 stream, 然后呢再将多个 stream 展开,合并为一个新的 stream, 那这边呢就是拆开的六个字符串。第三 个,我们常常会用这样的一些中间操作呢对集合进行处理,比如说我先对这样的一个字符串呢进行筛选,然后呢再去重,再把他们转化成整形,然后呢再排序,再选前三个, 然后呢再把它们转化成一个 user, 然后呢再收集成一个集合。第四个,一些简单的结果终止方法,比如说呢,我这边统计 stream 操作后剩余的元素个数,判断是否有元素值等于二百零五的,比如我们找到第一个操作,如果存在的话呢,我们再输出 第五个,这边有个坑要注意啊,就是一旦一个 stream 被执行了终止操作之后啊,后续呢就不可以再读这个流执行其他的操作了,否则会报错。那比如我们这边获得了 stream 操作后剩余的元素个数,这个呢是一个终止操作,那如果说你在这边再对它进 进行一个操作呢,就会报错,那他就会有这样的一个异常啊打印。那第六个呢就是用 clect 的方法生成集合,比如说我们生成历史的集合,生成 set 集合,生成 map 集合。第七个呢可以生成拼接字符串,用 clect 的收集,然后呢用逗号进行分格。 第八个呢我们可以对集合做一些数学的运算,比如说我们可以计算平均值,可以用这样的一个方法,比如说我们可以进行数据的一个统计,我们可以用这样的一个方法,那这边呢就会展示数据的一个统计信息。 如果说大家想要这样的一个 demo 以及之前的 demo 的话呢,可以到这来这,然后给他去发一个消息,像这样就可以拿到我们的 demo。 好,今天的一个分享呢就到这。