00:00
再继续,那筛选与切片完事了以后呢,那下一个是不是叫做映射呀,对吧?这个映射呢,稍微的有几个比较麻烦的,对吧,对吧,后边那个Fla map Fla map呢,有点烦,但是呢,上面这个映射呢,用到的概率还是非常的高的,叫test,叫做什么呢?叫做映射,说第一个map映射,它是接收一个拉姆DA对吧?然后将元素转换成其他形式或用于提取信息的,然后呢,它接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素,什么意思呢?比如说我们先来个这个东西,例增等于a list,点上as list,再来个AAA,来个bbb,来个CCCDDD,再来个EE。
01:00
是不是搞过这样集合啊,那么首先呢,我们map map试试对吧,叫做list,点上第一步时候还得得到数据对吧?只要是对流操作都得来这几步,然后呢,再去点上叫做什么呢?叫做map,是不是叫映射呀,这里需要一个function function是什么来着?函数型接口对吧?是不是传进去一个参数,返回一个值啊对吧?那么这个时候呢,我们说传过去一个str对吧?然后呢,我要把这个str点叫做to upper case是不是转大写呀,对吧?然后呢,为了看结果,我们是不是来个终止操作呀,来个print来,那么这个时候我们看看效果,用键运行是不是全转大写了,把集合中的元素全部转换成大写了,对吧?含义是什么意思呢?他说了,说接收一个函数作为参数。
02:00
该函数会被应用到每个元素上吧,也就是说它从这个元素数据源中提取出来一个AA,是不是给它应用到map中的这个函数上,对吧?注意理解这个啊,然后又取出个b de是不是应用到这个函数上,再取出个CNC应用到这个函数上啊,把每个元素是不是都用到这个函数上了,然后最后产生一个心流,得到一个结果。都能搞定吧,对吧,那么这个搞定了,我们说通常应为什么呢?今天我们就用了一个,我们说能提取员工的名字啊,是不是可以啊,对吧,比如说当前employees第一步做获取流,然后呢,再来个点上叫做map,是映射呀,我们是不是可以提取名字,需要一个方式吧,我是不是可以来个方法引用冒号,冒号get name可不可以。可以吧,然后再去点for each c,怎么点out来,再去右键运行。
03:02
是不是都提取出来了,对吧,那这可以用一个提取名字,这就叫做map映射。看完对吧,它可以将这个流中的每一个元素都用到这个函数上,然后呢,再去生成一个结果。搞定哈,好,那么接下来看这个叫做Fla map对吧?Fla map,在看Fla map之前,咱们先做这样一个事啊,我们先做这个,我们我现在写写一个方法,这个方法呢,用于解析字符串,然后我要把这一个字符串呢,一个一个的一个一个的字符给它单独提取出来,放到集合中,听懂吧,对吧?然后呢,我要这样写一个方法叫做public,返回个stream,比如说叫做是不character啊对吧,然后呢,比如说叫做future character说你传过来一个string是不是叫做字符串啊,我要把这个字符串进行一个是不是给它把里边的一个个的字符提取出来,是不是再转换成零,是不提转换成硫啊,那我们说转换成硫的话,我们说用集合能不能转换成硫,对吧?A,这思又一个,呃。
04:22
Be CL shift o一下,然后我们是不是就可以迭代一下啊,对吧,说增强for循环对吧?比如说这是CH迭代谁呢?迭代S点点to差ARA是这意思吧,就把这个字符串转换成字符数组,然后把一个个的字符提取出来,提取出来以后我要把这一个个的字符给它艾到集合中去吧,最后return返回值要求是一个流吧,那return什么东西,哎,List点使均是不搞定,对不对,对吧?那么这个呢,方法我就写好,写好了以后呢,咱们接下来应用一下,大家回想map的作用啊,Map是把这个里边的元素一个个都应用到这个函数上,那么现在我要就问这个事,首先呢,我要来一个叫做,呃,以这个为例,是不这个。
05:22
List里头存ABC是DD啊,那就list.stem然后呢,我要点map,然后我要应用这个函数啊,所以为了方便我给它sta一下,用这个函数,那就test string api2冒号,冒号叫future character对不对,我就先分号结束了,我就问现在它返回的是个什么东西?不管怎么样,Map中间操作map中间操作返回值本身就是个什么东西,是不是你经过一个中间操作,它一定先得到一个礼物啊,那我再问这个硫中存的又是什么东西,流外边存什么,是不是还流,这流里边呢,是不是开acpr,是不是这么个东西了,对吧?是否定对吧?首先注意麦克本身它是不是返回流啊,然后呢,咱们这里边的这个功能,这个函数的作用是你提取出来一个参数,是不是用到这个函数上了,这个函数的作用是你把这母热量传过来,它给你转换成流,是不是给你返回对吧?说再来个bdd对吧,再过来说再给你返回个硫因符和map本身返回个硫,硫中存的是不是还是硫每个。
06:49
邮政是不是character啊,就这么个东西啊,对吗?那么于是接下来我要遍利这个东西怎么来叫做stream点就叫for each啊,这里边是不consumer,首先说从这个stream提取出来的是什么?是还是有从这子间取取出来是硫吧,那么也就是说,那么相应的现在这是这里边是个硫对吧,叫SM吧,然后呢,硫是不也要变利啊,流说也要变利,那么也就是通过SM再去点Co,再去C次点out print来是不是得这么写才行?
07:34
对吧,这样的话,那是不是就把那一个个的字符取出来了呀,是不是柴高平。麻烦不麻烦,是不是有点懵啊,对吧,从这里边呢,首先map本身得到的就是一个心流,因为中间操作嘛,是不是产生心流啊,然后呢,注意它这个外部的作用是把你这个数据呢,都应用到这个函数上,而这个函数的作用就是得到的是个硫,硫中存的是character。
08:04
是不是那个东西啊,对吧,那所以说最终产生的是硫硫中存的还是硫硫中存的是character,那我们变力的时候也得嵌套的去O。对吧,那是不是就比较麻烦了呀,那么这个时候呢,我们就可以应用到flight map对吧,说flat map是干什么,第二个Fla map翻译过来是什么意思啊。是要扁平化平铺的那个意思啊,对吧?什么扁平化平图的意思说它可以干什么呢?它也接收函数作为参数,它是将流中的每个值都转换成另一个流,然后把所有的流连接成一个流,是最终得到一个流啊对吧?那是什么意思呢?咱们过来试试啊,首先呢,还是刚才的操作通过list是不叫stream啊,然后呢,我要把map变成Fla map,然后再去执行test stream api2冒号冒号future character对吧?然后呢,再去点就就这样就可以了,是不是用的Fla map呀,Fla map之后,然后我去点复each,是不是直接复each了,或者别直接for了,那这时我们说这个Fla map返回的什么呢?Fla们注意跟map的操作是不是一样写的,对吧,但是呢。
09:31
他得到的是什么呢?得到的是一个硫,硫中存的是character。看懂吧,对吧,然后我们先右键先给他来个执行一下,试试通过swim.for each parent来对吧,上面这个我先给它注掉,嗯。这里又建运行是不是也提出来了,是不是也单独的提出来ABB CC DD意了对吧?那么这个就是Fla map的作用什么意思呢?跟map去比,Map首先这比如说这是首先我们说当把AA应用到这个函数上以后,这个函数返回的东西是不是类似于啊,是不是这个效果说AA对吧?然后我们说再来个并例以后呢,应用到map中这个函数以后,那是不是又来个叫做BBD对吧,然后呢,Cccc DD de对吧?然后最终呢,它是不在整个一个大流中,是不是形成这样一个效果,是这个效果吧,对吧,说一个这是一个流,这这是一个流,这些流都在一个大的流中。
10:44
看到吗?而现在Fla map实际上是把这这个流,这个流实际上都转换成整合成了是一个流啊,也就是说现在呢,是不是这个大括号就没有了,就直接a AB be CC de de de了,是直接是这样了,这个效果,那这就是Fla map的意思对吧?这就是Fla map的意思,就是相当于什么呢?原来这是里边这是一个个的流对吧,我要是用map对吧,这是我的这map的map本身是不是流啊,我要用你是把这个流放到这里,这个流放到这里,这个流放到这里,这个流是不是也放到这里,但是Fla map是不是就不一样啊,Map是本身就是流吧,它是把这个元素放到这个流啊,这个元素是不是放到流中么了,这个元素是不是取出来放到流中,下边这个流是不是也一样啊,这个元素放这这。
11:45
二元数是不是放这啊对不对,相当于这么个情况,大家还记意得咱们原来学集合的时候,有一个叫做艾和艾O方法吗?艾OI的I和艾奥我们说有什么区别,首先说I,它是不是可以添加任意对象啊,我们说把一个集合传过来,用I的方法能不能加啊?
12:12
I的方法,集合中的I的方法,它这个参数是不是这么个东西,对呀,那我说我有个集合,我添加到当前集合中,我传过来行不行,是不可以啊,那我说那还有个I all呢,是这里是不是又有个I I all啊是不?这是还有个添加方法叫挨all,那我们说这两方法有没有区别,什么区别,第一个对吧,第二个第二个参数是这么个东西,对吧,对吧,比如说C是这么回事啊,第一个你要是传过来参数是个集合的话,它是把整个集合添加到当前集合中,如果你第二个的话,你传过来是个集合,它是把集合中每一个元素添加到当前集合中。
13:06
是不是就这个区别有印象吗?没印象没用过啊,对吧,咱们稍微的试一下啊对吧,稍微的试一下,比如说这么个东西,二我这里是不是正好有一个吗?有个集合,嗯,不等二六对吧,说这是不是有个集合呀,然后呢,我们说这个时候呢,我再搞个集合叫做list street对吧。就就叫list吧,LIST2等于用一个a list,注意看我LIST2点上I,要是I我是不是把list加进来呀,对吧,把例子加进来,然后呢,我这个例二放了一点别的吧,再按这个这个叫一一对吧,然后再来个二二说二二啊,那注意看,然后at的时候又把又at个list法,这时候看什么效果,输出一下LIST2数力三二啊右键运行。
14:15
是不是把例子一整个一个集合添加进来了,那注意我把它艾变成I哦,右键运行看是看到了,那含义就是现在的map和Fla map是不是就类似于这个对吧?Map是不是就是指把一个流一个一个流加到当前的流中呢?对吧?而所有的map是把流中的一个个的元素是不是加到现在的流中啊,就这个区别。看到没有对吧,那么这个就叫做map映射对吧,这就是映射中间操作。
15:00
搞定好了F。
我来说两句