00:00
那么关于我们这个迭代器的使用的话呢,咱就介绍到这儿了啊,就说清楚了,那个说清完以后呢,咱们再说一个新的知识点,这个知识点呢,也算是个新的特性啊,这呢哎,我这写一个叫for啊,它的一个测试了,相当于是个for循环,直播过的这个for循环不同于咱们以前说的这个for循环了,这呢是一个新特性。啊,在JDK5.0的时候呢,提供了一个新的方式叫for each,都这样叫叫for each,或者呢,也通常叫做增强for循环。就是for的另外一种写法,那使用这种写法,我们也可以用它来便利我们的集合,那不管能便利集合,以前的数组呢,也可以来便历,所以我们下边呢,来演示一下这个新特性里边提到的这个增强for循环啊,在这来说一下啊,说这个JDK,哎,5.0啊相当于新增了啊啊这叫for each啊循环啊,用于便利集合和数组,那咱们现在来讲数组呢,呃,讲集合呢,咱们就先来看一下它如何去遍历这个集合。
01:17
行,还是咱们得先有一个集合。这个呢,我们都关掉它了。CTRL一下。行,这样就我们就先有这个集合了,接下来我们现在要便利,咱们呢其实讲了一种便利方式,用迭代器,这就过了,下边呢,相当于说的是第二种便利方式,我们使用叫for意识循环,或者呢叫增强for循环,这个呢结构这样写,先写个for,一对小括号,一对大括号,哎,跟原来呢还一样,在这个里边的写法变了,原来呢我们是这么着啊,现在呢,不这样写,怎么写,我先写出来,咱们大家看一看啊,我这呢首先写这个叫object,然后呢OB接一下冒号,这个我写个叫CYL。
02:08
哎,这就写完了。啊,那我们来解释一下,这里边儿这几个部分是什么意思啊,这个for里边的话呢,第一个位置显然是一个元素的类型啊,就是先说这个位置吧,咱们这个for循环现在要便利集合啊,那你这个集合是CY2,所以这个位置指明的就是我们这个集合这个对象啊。咱们这个集合对象,或者叫这个集合这个变量,然后在它的前面,这前面呢,其实定义的就是一个变量啊,Object类型的一个变量叫OBGA,那么这个类型是谁来决定的呢?就是你这个集合当中元素的类型。啊,集合中咱们添的object,所以呢,元素的类型是object。那么这个位置呢,就是哎,你生面一个类型,咱们这呢,就相当于定义了一个局部变量,就有点儿像原来for int一个I一样。
03:08
这个名呢,你可以随便起。啊可以随便骑,所以呢,前面呢就是呃,集合对象,这呢就是集合中元素的类型。啊,元素类型,然后后边呢,这是一个局部变量,就相当于原来的那个TI那个I一样,啊这个名字呢,你可以自己去指定这样的一种格式。这样的一种格式,那咱们说这个增加for呢,还可以用来便利数组,要便利数组呢,这个位置就就是数组的这个对象。啊,就是数组这个变量名啊,然后这个位置呢,就是你数组的元素的类型,这呢又是一个局部变量行,那这块呢,我们这个接着去执行啊执行的话呢,怎么写,哎,我就直接呢写一个OB接就完事了。哎,这就是一个便利啊,先来看一下这个执行的结果。
04:05
诶你看没有问题啊,确实呢,就帮我们呢,都便利出来了啊,这呢就都搞定了啊,那么怎么去理解这个过程,我把这个过程呢说一下,避免呢大家在开发中出现一些小的问题,一会呢,咱们举一个练习题啊,你要清楚这个过程呢,你就不会出错了,怎么着做的呢?这个CY呢,是咱们要便利的这个集合,它呢,其实内部自动的会取这个集合中的元素,我先取第一个元素,把第一个元素呢赋给object类型的这个变量。因为你集合中元素都是偶不债类型的,所以这块我们也必须呢,这个类型和你这里边元素类型得一致了啊,取第一个元素付给OG,然后呢,我打印OBG,打印完以后呢,我接着去取这个结合中的第二个元素,再付给obj,然后我再打印obj,然后再去取这里边第三个元素,再再过来再取它等等等等,一直取到这里边最后一个元素。
05:01
哎,付给他,然后呢,把它再打印,是这样的一种方式,你可能会关心说,呃,这个取取怎么取的呀。你不用管是吧,你非要问说怎么取代,那就。Bug一下呗,哎,双击点右键左debug debug现在在这一行,我是不是想看里边的代码啊,点一下一点发现,哎哟,是不是里边用的也是迭代器啊。啊,然后呢,你下一步让他去执行,哎往这走,哎又回来,回来以后呢,然后这个接着走下一步,这不就帮我们这个把123输出了,然后呢,这个再回来啊,这个我点它了啊,你要点诶这个还能点啊,再回到这儿,你再进入这个代码里边就进去has next,相当于啊,其实就不用再往后看了啊,我们从形式上来看的话呢,它是这样子写的,其实它内部掉的还是迭代器。
06:03
啊,这个内部呢,掉的还是迭代器。啊,内部仍然啊调用了。啊,这个迭代器,所以呢,咱们在之前的时候没有给大家呢,去讲这种方式啊,讲了迭代器呢,这时候一看啊你就清楚了,本质上其实一样,形式上呢不太一样了。好,这个呢,我们就说完了啊,就是我们要是去便利集合的话呢,大家可以选择用迭代器,也可以呢,选择用for each循环,哎这样的方式去做,这呢咱们是用来便利这个角集合的,那顺便呢,咱们说一下,你不是还能变利数组吗?哎,T12数组的话呢,类型随便,嗯,什么类型都OK啊,这个整一个in才行吧。AR等于又一个你的行。S3456行放这几个数,下面呢,我想遍利一下这个in特型数组,以前呢,这个for循环in特I,这咱们就不说了啊,现在我写一个增加化循环什么类型啊,In特I冒号A,就这样呗,看s out一下,哎,这就可以了。
07:18
啊,这呢是数组跟这个对应哈,数组的对象,你可以把这个呢拿过来,CTRLC。哎,这呢叫数组这个对象,哎,然后呢,就是数组元素的类型,这呢又是个局部变量,哎,就这样。没有问题,行这呢我们就说完了啊,这个增强for循环,诶这两个大家呢,就灵活的去使用就行,那这个说完以后呢,我们说一个小的练习题,看看大家呢,对这个增加负循环,它的这个使用呢,是不是到位。
08:00
啊,这个练习题呢,其实是一道笔试题啊,以前呢,有同学被考过啊,我们看一下,嗯,这呢我写谁呢,我呢其实是一道这个数组的一道练习题。这是用的这个int型,换一个吧,换一个string类型,String,嗯,这里边这里边呢,我们放几个数啊,放几个。美眉吧,都是哈三个,然后呢,我们使用一个for循环,这时候用的呢,叫我先用一个普通的for循环,I呢小于a2.length,然后呢I加加在这里边我调了一个A2,把这个I呢我改一个值,改成叫GG吧。改完以后,我现在呢,再通过一个for循环的方式呢,进行一个遍历,这个现在大家呢,看到这个字符串是感觉兴奋呢,还是看着就感觉特别胖呢,尤其涉及到这个字符串来回给大家赋值是吧?啊一看到字符串这个赋值,尤其在笔试面中,这个你得这个提高注意力了啊,这个内存的这个结构咱们也讲过了,这个得整明白啊。
09:22
好看一下放了三个值一样的,然后我现在呢,通过一个普通的for循环的方式呢,给他又重新赋个值,那现在我去便利问是美眉还是GD,是他呗,确定吗?确定。感觉有堵的感觉是吧,确定吗?确定啊没问题,这呢是用的我们普通的一个for循环。哎,普通这个for循环呢,做了一个这个复制操作,现在呢,我把它呢注释掉啊,我呢现在换成是一个增强for循环。
10:12
或者你要for意识循环都可以说的都是它,我这里边呢,这个string是吧,嗯,String,然后呢,S冒号A22在这里边,我S等于一个GG。对,这个时候呢,我要在便利,这时候是什么呀,美眉为啥呢。嗯,这时候呢,是不是提到提到了一个新的变量了,嗯,这个呢,我们是拿着你本身的数组元素做修改,而这个呢,你是把这个里边的元素取出来,相当于你取出来这个ari,把这个ari呢,你赋值给SS呢,把值给改了,那我们这个元素呢,是不变的,哎,这个原因造成的。
11:03
啊这啊不变,所以呢,要想能够把这道比试题你做对呢,需要大家对我们这个增加负号循环啊,这个事呢,你得了解啊,它是重新附了一个S的值。嗯,修改它不会改变原有数组中的元素,行,这呢就是这样的一个小的题目啊,那总结一下就是咱们去便利集合和数组,还可以有另外一种方式,JDK5点当中新增加了for意识循环,哎,大家呢,后边去用就可以了。
我来说两句