00:00
行,那往下呢,我们在说一个叫optional啊,诶这个好多呢,你发现都是针对我们八这个版本当中的一些API的一些更新,诶optional这里边说呢,它提供了一个叫stream这样的一个方法,诶optional里边还提供一个叫,因为呢,我们optional呢也提到它也是一个容器。啊,像咱们讲这个STEM的时候呢,说它就是对这个容器的一个操作,像上边呢,对这个集合的操作,哎对数组的操作,哎集合数组里边都会存储好多数据,因为他们是容器了,针对于这个容器呢,做一个stream,拿着这个数据呢,做一些过滤啊,这个这个排序啊,啊等等这样的操作,那optional呢,本身它也是一个容器,官方都说了,那既然你也是一个容器,那按说人家也应该有这种能力获取一个流。获取一个stream,那在酒里边呢,就给人家补了一个方法,说option中呢,哎,也有一个叫stream的方法啊,就这样个意思啊,这块呢,我就把这个例子就直接写好了啊,直接咱们直接拿过来去跑一下看看。
01:08
哎,Avoid test的一个四。哎,直接我们拿过来在这上面呢,我们去说一下,这是咱们JAVA9,呃,新特性这个11,哎,给我们optional这个类。他呢去提供了这个新的这个方法叫stream方法。这个啊,就是我们下边的这个stream啊,点开看一下,就是我们这个九开始的啊行,那看一下我们这里边这个题目,这个optional是吧,Option呢,我们说可以封装一个数据了,这呢我就封装的还不是单个元素,我这放了一个list,当然整体上来看,你这就是算单个元素了啊,就一个集合对象里边呢添加了几个数据,哎,我of novel这个方式呢,我把它放进去了,保证这个时候肯定不会抛异常了啊,秒掉of呢,可能会抛异常。哎,这个呢,不管你空也好不空也好,肯定不会抛异常,那封装出来的就是一个optional啊,这呢,你内部封装这个元素啊,就取决于你这个历史的类型。
02:07
乘,然后再往下,再往下的话呢,这个option呢,我们去调这个随率方法说这是一个新的特性啊,调完以后这个前面这个结构呢,我们也可以。直接呢来说一下啊,哎,我们alt斜杠,你看我们一生成。生成这个stream,它呢,Stream是肯定的啦,这个stream里边呢,还是你这个optional里边封装数据这个类型,所以跟上面这是一样的,哎再往下stream的话呢,我们想去遍利一下它里边的元素,你看这时候我用的这个叫flat map,哎,不知道还有没有印象啊,我们原来讲这个叫flat map的,这个时候因为呢,我们这个stream它如果要是一个。那你就直接调这个,比如什么for each就可以了。啊for,或者你现在我这个STEM,我要是调一下谁啊,我调一下这个count哈,你说这个这个count是几。
03:01
是一还是三?就看你对这个结构熟不熟悉了。加A1。一哎,这个唯一的这一个元素就是list呗,就是它啊,哎这呢是我们说的这个情况,那现在的话呢,我们想把这个list当中的这个元素再给它输出出来。啊,那这时候你就得拿着这个stream,第二咱们需要做一个映射,呃,映射呢,咱们map还有一个叫flat map,哎,Fla map咱们这不是讲过,有点类似于咱们说的那个I all一样是吧?哎,Map呢,相当于是I嘛,你这里边要放的是个集合,把这个集合就当成一个元素了,I all呢,是把它又拆开吧,你这一个集合就拆开,看到这里边的元素,一个一个的元素,那Fla map呢,哎,也是这样子啊,那flat map control out斜杠,那你里边的元素不就是一个list吗?所以X呢,它就是个list,那人家这块呢,是个函数了,我这个X点,哎,既然是个list,我调下stream。
04:16
啊,相当于返回的就是个stream,把这个stream的元素,它自己再一个一个的去调这个map,给你一点点映射出来,这就可以了啊,再做一个for each。呃,细节的话呢,大家你回来看一看,咱们原来讲的那个flat map啊好,这样呢,我们做一个操作,就能够把这里边儿的元素呢再取出来。哎,就是这三个就行啊行,这里边的一个重心不在这啊,重心呢是在这儿,相当于我们这个option啊,既然人家也是一个容器,那就也应该让我能够转化成一个流啊,我呢也能够对我里边这个数据呢,进行一些哎过滤啊,规约啊,哎这样类似的操作啊,这呢就是我们optional里边的一个新方法啊。
05:00
行,这是我们说的这个第11个。
我来说两句