00:01
来看一下这个第一题,他说了给定了一个数字对吧列表,然后如何返回一个由每个数字平方组成的列表呢?这个还是比较简单的对吧,对吧,用要求用我们这个用一些web radio去做对吧?那这样的话呢,首先有一个数字列表对吧,叫做嗯,应神数组。或者用哪个用哪个都行,对吧,The numbers等于new一个in对吧,然后这里边分别放的是12345,这可以吧啊啊对这对这个这个逗号也不对,是吧,四五是不是这个东西啊对吧,里面放着12345,然后呢,我是要获取它对应的流啊,然后怎么获取流来着,数组流A瑞点二啊呃瑞点是不是直接stream嘛,对吧,那这个它的传一个numbers,这样的话是不是就得到一个流啊对吧,得到一个流,那在这基础上是不是也就可以进行操作呀,对吧,然后去点点什么呢?叫map还是reduce,直接map map,然后呢,应用到每个函数上。
01:37
怎么用到函数上?乘个X,然后X乘以X对吧,然后直接就打印了,直接来个for each system out for吧,对吧,右键运行是不是有了一,四,96 25,对吧,Reduce是不是也能做呀,对吧,Reduce怎么做呀,Reduce,那那reduce它后边那里也是一类似对吧,行这个就用个map就可以了啊下一个用reduce,下一个看说怎么用map和reduce,对吧,说map和reduce完成这个说二怎么用map和reduce,然后呢,数一数流中有多少个employee对吧,对吧,那我把这个employee呢再拿过来,实际上数一数employee的这个操作很多种是不是都行啊对吧,很多种都行,但是呢,这个题呢,咱们用。
02:41
Map reduce去做对吧,那map reduce去做的话,那这个怎么做呢?首先还是获取这个对吧,点stream,然后呢,点map map,然后呢,传过去个一对吧,返回指个啥呢?哎,返回一这个可以啊,这个是不是很好啊对吧,然后去然后去reduce是吧,对吧,然后reduce呢,只需要来个啊呃,这对吧,我你们老牛了,我发现呢是some啊对吧,那这样的话是不是就得到一个,呃,应该是long some吧,对吧,Long long,呃呃,没有那个,没有那个时叫option啊对吧,Optional,然后这里应该是个long,然后count,对吧,Ctrl shift o对吧,阻例啊,Reduce reduce。
03:41
是teacher啊啊对吧,那sit out一下count是不是可以了,那右键运行啊get.get一下对吧?那么右键运行,那是不是一共七个呀,对吧,可以啊,我牛了,那下一个就是这么做啊,我也是这么做的啊对吧?那接下来看这个,说这个呢,有一个交易原类对吧,然后有个交易类,交易类里头有胶原是不是关联呢?有个胶易原,然后呢,在这里呢,我们这都是例子都给我们了,然后让我们写这几个对吧对吧,那么我们就把这几个都copy一下是不是就行了,对吧?你们是这么做的吗?嗯,对吧,说首先呢,有一个交易员对吧,然后有一个交易对吧,然后呢,有一个揣三。
04:41
嗯,对吧对吧,这没用过是吧,对吧?对,就是你把这个类,把这个类对吧复制就可以了,在这都复制啊复制啊你到指定包下唯一就完事了,他就自己就给这类给你建了,没用过吧,那就是说明这个老师复制的不专业,复制用的太少是吧?来你们看一下,第一个说呃个现在我有知集合是吧,叫TRANS3SENSE对吧,然后里边呢,有这样几个几笔交易,每个交易都对应的一个交易员对吧,然后并且有年份,有交易额这么几个数据对吧,都了解了,然后说找出2002011年对吧是吧,I test20one test1说找。
05:41
租2001年所有的交易,并按交易额排序,从高到从低到高,注意他让我取出的是交易吧,对吧?那取交易的话呢,还是叫做transaction,不管怎么样,是不是首先先先string啊,先得到这个硫,拿到了流以后呢,那是不是就filter把2011年的先过滤出来呀,对吧,那就先filter对吧,然后呢,传过来个T对吧,然后呢,我要是t.get year对吧,Get页等于201201这就出来了,然后说排序啊对吧,排序的点saled对吧,然后去for,意思一下,暂时先打印输出一下对吧,把来啊按照交易额呀,那按照交易额的话,那就不一样了吧,那按照交易额的话对吧,那啊就得以去,那是不是双它就不一样了呀。
06:41
啊shorted的,那么按交易额的话呢,那这里就得指定了吧,对吧,传过来个T1和T2,然后呢,就是T一点干用这个这个inte对吧in.compare T一点get value,然后呢,T2点get value6是不是可以了对吧?那这样的话呢,再去for each对吧对吧,再去for each,走点for each system.out来对吧来试试对吧,2001年,然后并且从低到高的排序,那这样的话是不2001年呢,也是从低到高三百四百万对吧,从低到高排序对吧,就是这么做,那下一个呢再来说呃看二说看说看这个交易员都在哪些不同的城市工作过,对吧对吧,都在哪些不同城市工作,那么这。
07:41
这样的话呢,那就选sections,点上还是stream对吧,对吧,然后map把city提取出来是吗?对吧,那就是提city的话,City那就得先提交原了吧,对吧,那就不一样了,那就是T,然后那叫t.get trade点上get city是这意思吧,对吧?然后呢,然后是不是去从呢distinct,然后呢,再去for each对吧?来右键运行是不是这几个啊对吧,一共就这几个了啊来,再来,然TEST3对吧,再看这个说查找所有来自剑桥的交易员,并按姓名排序对吧对吧,这个查询出所有的交易员并按姓名排序对吧?那别的不说,还是先得到他的。
08:41
流,然后呢,剑桥到我要不要过滤呀,哎,得过滤一下对吧,怎么点得这么费费劲呢,点上过滤那是不是得build呀对吧?然后呢,你传过来一个T,我要T点上get,呃,它点get city吧,然后点equals得是剑桥对吧,剑桥然后呢,并按姓名排序吧,对吧,并面的姓名排序,那他这会又给我报错呢点儿对吧点然后呢。
09:27
需卖吗?交易交易元啊对,那是不是就交易元呢?那就卖,那是不是取出交易元呢?取出交易元的话,那就它点get tradeer对吧,RT对吧,是不是取出交易元呢?然后呢,再去点否意上啊变变姓名排序对吧,还得排序,那就是再去点saled的对吧,然后还得指定排序方式对吧,T1和T2,然后呢,t1.getname对吧,点compare to贴点get name对吧,再去点for each对吧,System outb来。
10:18
是这意思吗?对吧?都是剑桥的吧,都是剑桥的交易原,交易原之后还要去重了对吧?那这distinct是不是就去重了对吧?右键运行是不搞定呢对吧?交易元这几个都是剑桥的对吧?好了,下一个下一个的话呢,那这个呢,这个这个问题是不是稍微有点争议啊,这是第四个有吗?对吧?我们说说所有交易人返回所有交易员的姓名的字符串,然后按字母排序吧,对吧,是返回所有的字符串啊对吧,返回所有交易员姓名的字符串,那就是所有的交易的stream获取,然后呢,Map是获取所有的交易员的姓名呢?对吧?那么交易员的姓名的话,那你还真得是这样对吧?然后T一点get t.get me,这样的话是把所有交易员的姓名都提取出来。
11:18
然后呢,点sorted对吧,是不是就排序啊,点for意,那么是不是这个意思呢?排这错牌了呀,对吧,这个是按照姓名的排序吧,对吧,但是呢,我们说有的可能是不是这样就管它呢,我们就挨个都试试对吧,把几种想法都试试,那有一个还有一种情况呢,是就把所有的信息连成一个字符串啊,然后排序啊对吧,那连成一个字符串的话,那怎么做呢?就是transactions对吧,点上stream,然后呢,还是也得提取吧,也得提取,那这样的话呢,叫t.get t.get name把name提取出来,那么name提取出来,然后呢,去怎么着给搜取的,我们可以排上序,排完序我可以把这个取出来的这个姓名是不是拼成一个字符串啊,拼成字符串。
12:18
用reduce能不能做?用reduce可不可以,比如reduce,我给他来个起始值是个空串可以吧,然后呢,按照什么方式,String是不是有个count方法呀,叫做不是count,叫做content student对吧?是content con cat是不拼们对吧?那这样的话呢,他是不是就给我得到一个字符串啊,那么看看这一个字符串里头的姓名是不是排好序的呢?右键运行是不是拼了abm所有啊,对吧,这不也拼成一个字符串了吗?对吧,我们只能是先排,先把这先四能排排完之后拼拼成一个吗?对吧对吧,跟先拼后排,先排后拼是不是也差不多呢?那有同学暂时这样想的是是先拼后排指的是他把这所有的字母这个这个名字拼成一个字符串之后,然后再排的话,是不按字母排呀,那那样的话是不是有点麻烦了没你就练习嘛,对吧,那这样的话,那要是真的就是那样做的话,怎么办?首先人家顺路转,就他没有给我们提供什么能按能按这个字母排序的吧,对吧?那于是他是不是就得就得按照我们之前那种写法。
13:47
呀,把这字符串里头的字符一个个的提出来了,然后入排呀,对吧,那咱们之前是不是写过这样一个方法呀,是吧,叫做public,叫做返回的是一个,然后这里是R是不是character啊叫build character actr,然后这里头来一个是stream s点啊对吧,然后来个list加list new1a list对吧,然后呢,来个for循环for意对吧,CH变历的是S点,点to差对吧,然后list.and把C是加进来,最后也就是另点string ctrl可以吧,对吧,可以就是练习啊练习啊练练,然后呢,这样的话呢,我们说我们的目的是把它们这拼成一个字符串之后是不是按一个个的字母排序啊对吧,那这样的话呢,我们可能这样叫做。
14:47
在sections点上stream,然后呢,首先我是不是也得提取所有的名字对吧?然后就是来个叫做T,然后呢,叫t.get tradeer.the get name,名字提出来吧,名字提出来我就把名字里头字字母还给提出来的吧,对吧?然后再去点叫做哎,Fla map吧,哎,这个就用到了Fla map Fla呢,那这样的话我就调用这个方法,那我来个static是不是调取方便点啊,那么这样的话呢,就是type transaction的future character对吧?然后按照字母是不是自然排序,这叫自然排序对吧?然后呢,再去呃,For each对吧,C这么点out,点把re来是不是这个效果对吧?右键运行。
15:46
嗯,那和瑞不来个LN是吧?是不要LN的对吧?那右键运行字母排了,但是排的不好,就是它大小写吧,我们的字符排序实际上底层是不是就按照这个R匹板排呀,那大写字母在前,小写字母在后啊,那我想忽略大小写,忽略大小写怎么办呢?都长成大写那就没有意义了,对吧?那假如说我就想忽略大小写,咱们是不是string类,它有一个忽略大小写的比较对吧?String类是不是有一个叫做compare to什么是不是case啊,叫case compare to还是什么的,对吧?是不是那个方法忽略大小写,但是开了这字没有。
16:38
那这个时候怎么办呢?哎,我说这个给转成string,就是这种用string形式的是不是可以了,要一个string的格式的可以吗?对吧,To差,那这个不对,那这样的话我to差位取出的是一个个的字符,对吧?那我这个只需要改,这是不是可以啊,这个是string,然后呢,这是一个差得到的差之后这来这来个to string对吧,对吧,那这个呢也来成俊,那这样的话,我说含起的把那些字符一个个的字符都变成字符串了呀,那一个个字符变成字符串以后,那这样的话,那有没有办法比了S2,然后呢,S1点上叫做compare to1KS2是这意思吧,那这样的话,看看忽略大小写什么,有那右键。
17:33
运行是不忽略大小写了abi什么的,对吧对吧,可以了啊,这个就是几种情况同时练一下这个map reduce和Fla map对吧,都用了,用下一个第五个呢,说看看有没有赵丽员在米兰工作对吧,有没有有没有我们是不是学过现成的呀,对吧对吧,在米兰对吧,那就是说首先transaction点上叫做stream对吧,然后呢,再去点什么呀,是不是直接叫有没有有就行了,就是an对吧,传过来个T,然后呢,它的get,它点上get city.equals是米兰对吧,米兰米兰对吧,米兰是不是就有没有啊对吧,如果有是不去反问数啊,对吧,点。
18:34
拿到它以后呢,我们c out下这个BL,这时呢,右键运行是不是错啊对吧,有没有下一个,下一个呢,就是打印生活在剑桥的交易员的所有的总交易额吧,对吧,对吧,总交易额,那这时打印的是总交易额是不是把韩雪我得把那些交易额都得给我取出来对吧?那就是transaction,那肯定得有map了吧,对吧,然后来个stream,然后点map,我要取交易额了,对吧,取交易额,交易额那就直接就有吧,啊对对对,先过滤对吧,先取出剑桥的对吧,叫filter,然后呢E对吧,然后E点3GET,缺点点get city.equals是剑桥对吧,也是剑桥的。
19:34
建桥,然后建桥之后把他们的交易额再取出来吧,对吧,然后再去map map的话就是transaction的get value是在这吧,对吧?然后呢,再来个什么呢?Reduce对吧?Reduce也行,Collect是不是也行啊对吧?那交易额是int吧,来个萨,这是不就总交易额了对吧?总交易额那就是返回的是option吗?上总交易额shift o导一下包在这里out总交易额这里再句右键又忘盖了。
20:16
点get对吧,对吧,那这是右键总交易额。是不是个呀,对吧,总交易额就有了,好下一个下一个呢,再看所有交易中最高额的对吧?那就是最高的,最高的也没啥特别对吧,没啥特别的,那就是在334点上,实际上是不是有很多种方式都能做呀,对吧?然后呢,呃,最高的,那我也可以说卖呀卖之后,然后呢,把这个所有的交易额提出来,对吧,他不让说交易额是最高的,交易额是多少吗?那不把交易给他提出来吗?就说把交易额提出来啊对吧,对吧,说交易额是多少嘛,对吧,叫get塔VALUE6然后呢,点点啥点max,那这里是直接有max对吧,那这个交易额那也就是in地点compare。
21:24
这是不是也行啊,这用client能不能做呀,对吧,那这个呢,最高的最高的也是一个optional吧,然后来个in对吧,叫max。再来个set out me.get取一下右键最高的是几百,最高的是1000对吧对吧,1000下一个下一个才叫找出最小的交易吧对吧,交易和交易额是不是不是一回事啊对吧,那取出最小的交易那就不用卖了吧?对吧,那就直接stream,然后直接点上叫个me是不是就可以了呀?对吧?然后呢,那这回我得去取了吧对吧,T1和T2,然后呢,叫做呃,in.compare T一点get y6和T2点get y6对吧?这样的话取出来的是不是就是交易啊对吧,得到一个optional里头是transaction,对吧,Op对吧,然后C上看一下op.get这就是角E右键运行。
22:37
这是这种交易对吧,最小交易额为300,是这意思吧,对吧,那大家试试想一想,如果这些操作要是用我们原来的那些对于集合的操作来做的话,麻烦。
我来说两句