00:00
好,各位同学大家好,我们继续上半场我们完成了我们的需求分析,那么接下来不废话,直接编码上线。那么现在需求。输出。一句话,本次编码实战案例需要大家深度理解函数式编程、链式编程、STEM流式计算以及我们最终的compare future异步多线程任务。好了,那么现在呢?我们呢?这两个需求其实是一回事,那么同一款产品,同时搜索出同款产品在各大电商平台的售价,对吧?前面也说过了,同一本书,京东、当当、淘宝上分别卖多少?那么思路呢?有两种,第一个中规中矩,Step by step。京东上查,单单上查,淘宝上查,拼多多上查,假设每次查一秒,1234需要耗时多少?不用我多废话,那么第二种我应怎么着?万箭齐发那么弟兄们。走。一起一起一起,那么兄弟们这个时候都清楚这样的话是不是一秒钟全部给你搞定好的,那么来同学们。
01:08
需求分析和我们的技术要求以及我们的产出,那么最终我们就是反馈一个list,要求你给我出一个清单列表,类似于爬虫爬出来的动作,那么MYSQL这本书在京东上售价分别是多少?好,那接下来呢,我们呢,不废话,直接那么现在。首先一个类来,那么他呢,就模拟是什么电商网站啊,我们现在呢就做呃1.1吧,同款产品在各大电商平台的售价,那么现在呢,我们呢,这只有一个嗯,Private。子俊,这个呢,就是我们。电商网站的名字OK吧,那么它呢,是京东还是拼多多还是淘宝等等等等,好,这是一个,那么第二步呢,我们对它呢构造方法注入,那么我们就要规定啊,我们这个电商网站它到底叫什么名字传进来到底是京东还是拼多多还是淘宝好,这是我们的第二步,那么对于我们这个类的封装,那么第三步我们要搜一下。
02:11
MYQ这本书在京东上多少钱?那么当然啊,托而广之啊,就不是一本书了,它是一种具体的产品,所以说。价格我们这儿。那么这个价格呢,依据依据于什么呢?依据于我们的产品的名字。OK,那么来吧,假设查出来啊,我们需要一秒钟查出来啊。那么注意。这儿呢,我们就说一下啊,由于呢,我们这儿呢,这个价格呢,我们就不再做这个比较较真的啊,就用big domestic大小数集的那个呢,我们就不用,我们就用简单的一个double啊,这个呢就不在乎这些细节,主要是这个业务需求和同学们说一下啊,当然如果你非要用B这个呢,价格上呢,更严谨点的也可以啊,那么在在这块呢,我就偷个懒了,那么请各位粉丝网友那么理解好,那么接下来我们这相当于说我们要从京东上查出来MYSQL。
03:06
这本书多少钱?那么本次查询大概花一秒钟啊,我们这就业务模拟提一秒钟,那么这个价格怎么来呢?我们就。那么当前,那么接接下来next Apple,那么乘个二,加上我们的product at,零,那么现在。好,那么同学们这一波他们看得懂,如果有疑问的同学,我们不妨呢,在这儿给他打出来啊。那么给大家呢,简单的呢,说一下啊,假设这个product name,那么就是我们后续的MYSQL这本书来,各位同学这什么意思呢?我们大家都清楚啊,这个n double的话,它是在什么?大于等于零小于一,就相当于说产生了一个。随机数小数乘个二,那么肯定是超过一部分对吧?那么这一块的话呢,我们的MYQ是串char at0,一般如果单独调用这个的话,它会告诉你反馈是个M,如果跟一个数字相加的话呢,那么就可以将它连接成一个数字,我们用它来模拟这本书的价格,OK啊,那么正常情况下我们一跑,那么大家请看,肯定会出现一个小数点后面有多位。
04:17
一个小数,那么假设这本书啊,买SQL我们用调用这么一次,那么第一次就会获得它是110块钱,7800等等等等,那么到最后我们保留小数点后面两位啊,尽量模拟的有整有零有整一点,OK,那么这样呢,相当于说一秒钟就从查出来我们大致。我们现在呢,这本书,那么它呢,买多少钱OK好,那么这个呢,就是类似于把它当做一个什么小小的工具类好,那么这个呢,是我们的电商就好了,那么接下来我们要模拟呢,各大电商对吧,迪卡那么list。Let more,那么这个呢,就是我们的list,那么来吧,我们做一个负初始值,你从哪,诶,你从哪几个电商上开始查呀,那么我们也不能给它闲着,对吧,At list,那么来到这,那么尿let more,那么假设这就是我们的进动,那么。
05:07
假设这就是我们的当当网,那这个呢,就是我们的这个淘宝吧,OK,那么相当于说现在呢,就来三家电商网站,那么结合我们的需求,是不是要查一款产品买这个这本书,那么现在在京东单单淘宝上模拟一下他们各大电商平台售价,我们是不是要分别去查呀,OK,那么好,那么第一种我们呢,中规中矩的。来吧,同学们,现在呢?OK,那么list按照我们的诉求,我们最终是不是要给人家一个list清单啊,子卷类型的对吧,那么现在get。那么这个呢,就是我们的价格,你这个价格怎么来的呢?我们要去这个list上面去搜索,对吧,就是说电商的list里面,然后好你搜一个什么呢?搜我们一个东西product name传进来,OK,那么此时兄弟们。
06:02
我们这个呢,就是中规中矩的。Step。BY。那么就是一加加so。OK,那么查完一家查一家,那么最终我们来看一下啊,那么现在这个list我们呢,注意我们这有个要求什么,是不是叫stream流式计算,我们现在这个list里面访问的和转载着的都是一个ne more,每一个电商,那么接下来呢,我们这儿呢,就是list。Stream,大家请看,我们把它从一个list变成一个stream流射啊,然后然后map做一个映射,那么这个映射相当于我们要把里面的对象let more,就是电商这个映射成为一个我们的新的表现形式,那么最终我们要得到我们的一个什么东东,List好,那么怎么来呢?Map,那么来吧,那么现在我们这个list里面装的是什么呀?装的就是我们的ne more,那么来,OK,得到它,那么现在我们希望输出的什么呢?希望输出的是一个。
07:04
标配的这么一个字符串,你看它是有格式的,对吧,所以说呢,我们这儿呢,就需要用到一个新的工具,那么。这个类新的功能,第2FORMAT这一波,同学们OK,那么这个format什么意思呢?大家请看。你看这个string format是什么?这个字符串你要需要返回的字符串的格式要长什么样。这个是你对应的匹配占位符的参数,好,那么说到这儿,如果懵逼的同学跟着来,那么现在呢,我们就要求按照我们这儿,你看他是不是要求你长这种。返回这样的一个样子啊,那么这个时候是不是这本书啊,那么这本书叫说duck,那么加上我们希望你呢,你看in什么在什么地方啊,我们希望你在呢,来百分号S啊,这个叫占位符啊,待会来说,那么现在呢。
08:00
价格是多少呢?这第二个占混符点2F,这什么意思啊,这是代表保证小数点后面有两位,好,这个就是我们的string form ma的第一个参数,意思就是说这一串就是我们这个里面的这一串,最终我们要输出来的是一个什么样的字符串,那么完全按照我们的需求格式啊,你看in。这个。第一个百分S就是我们的电商的名字,第二个百分第22F就是我们的这个价格,好,那么怎么给它匹配上呢?你们别忘了,我们现在这个map里面是不是一个一个的ne more呀,那么所以说我们在这。那么就是我们的。Let more.get什么商城的名字OK,然后呢,是more。第二,计算的价格,那么从这个商场里面给我找买CQ这本书大概是多少钱好,然后呢,Collection。To list,得到我们的list string,然后呢,第二直接一口气返回,那么来兄弟们,这个就是我们的stream,结合我们的。
09:08
这个拉姆达表达式完成我们的流式计算,好一波流带走。上一讲我们是是不是说过像项链,像链条一样的从左到右流式计算,好,如果你觉得看的不爽的,那么list。Map。Let more OK,那么来,同学们,我们给他呢?弄下来,那么给同学们呢,来做一个清晰的讲解,那么list stream变成stream OK,那么注意这个stream流式计算是Java u stream是这么一个动作,做了一个映射,那么线传进来的时候,它呢,是一个。我们希望出来的时候是个字符串,而且我们这个字符串是带格式的,每一行都要要求这样,所以我们用string.format那么然后来请大家看。现在对于我们这第一个是不是叫string ma,第二个这个是不是一个动态的可变参数,那么相当于这个就是占位符,这是第一个,那么我们的Nemo得到电商的名字,那么我们这个电商名字叫京东,叫丹,丹是叫淘宝,它就对应着我们的第一个站位符。
10:10
OK,那么价格呢,就是通过我们自己封装的这个方法计算这个价格,它呢就得到我们的第二个占位符,一一匹配,一一对应,那么小数点后面保留两位,OK,好,那么大家看这个呢,就是我们中规中矩的,那么每一个网站上面我们呢,都可以查询出价格是多少,而且要求我们的每一次输出的价格都是这样,好那么接下来。那同学们,我们来就来看看怎么调用这个方法,那么很简单,我们和大家说过,我们之前是要有个电商比价需求功能到性能,那么现在我们并没有使用comp future,我们要看看你花费多少时间来,弟兄们,那么这个呢,就是我们的get price。OK。那么呢,我们直接调用get price这个方法,那么现在呢,我们要求调传进去的呢,就是我们的电商这个参数,那么我们要炒的书呢,就是买,那么现在呢,就是我们的LIST1,那么大家看一下。
11:11
那么元素。那么这个里面做一个迭代。Element。来同学们漏眼,那么现在假设我们从三个电商网站上面,我们一起去找这个价格分别是多少?好,那么同学们,那么按照我们的说法,是不是一秒钟查出来一个,那么最终三家网站我们可以看一下按照我们的计算能不能,按照我们的格式要求能不能。得到我们的结果,大家请看MySQL in啊,好,那么在这块可能少了一个空格,我们再执行一次,但是这大家可以目力所及,可以看得出已经完成了我们的需求。那么现在。每个网站要花一秒,如果像这样的话就可以得到,那么我们的MYSQ这本书在京东上价格是大致是这个数,在当当上价格大概是这个数,在淘宝上这个数,一个网站一秒钟,同学们几秒,那么是不是就是我们的三秒钟,哎,所以说现在你确确实实完成了这个功能也可以用,但是别忘了我们现在要从功能到性能,那么所以说接下来我们就要给大家演示啊,如何用我们的computer future结合我们的流式编程异步处理这个任务。
我来说两句