00:00
好,那么关于这个迭代器,它便利的话呢,我们就涉及到这两个方法,那除了这两个方法之外呢,我们还看到有个叫remove方法,这呢涉及到叫移除,就是我们可以调用这个remove方法来移除咱们集合中的元素,那yag呢,就是我们刚才看到这样的一个结构了,啊,我们的ter呢,它是拿这个指针指向我们集合中的这个数据啊调ne呢,就下移下,然后呢,诶返回下移以后的这个位置上元素,除了你能够做便利,它还有一个remove。我们呢,还可以帮你把集合中这个元素呢给干掉,就是在便利的过程当中,帮你删除一些你不想要的元素,就是这个意思了,我们来演示一下。Public void test3这个呢,我们来说一下这个迭代器,它这里边这个remove方法啊。哎,它的一个使用,那首先我们也是先有这样的一个集合,哎,CTRLC拿过来,然后接下来我们呢,通过这个啊C呢,我们调这个eter方法,首先呢,得到一个迭代器的对象啊,搞定了,然后呢,我们通过这个while循环,刚才已经写过这个代码了啊e.has next,那在这里边呢,我们就获取每一个next值。
01:22
哎,这个NEX值的话呢,我们接收一下啊,这呢就是一个object啊,因为呢,我们存的都认为是object了,所以取的话呢,也都是object,然后这个时候呢,我们判断一下啊,说如果这obj啊,比如说我们呃,咱们这样写吧,啊,我先写这个Tom呢健壮,呃这个健壮性更好一些啊ES这个obj啊,万一里边你要存个闹的话呢,呃,拿闹去调就控制人了啊这个咱们这样反过来写。那我们看一下这个数据里边呢,是不是有这个Tom这个数据,如果要是有的话呢,我们呢,就把当前这个数据呢,给做一个移除啊,移除啊以ator点二,还有一个叫叫remove,这样就移除了,那么通过这样一个便利啊,就相当于把这个Tom这个数据呢,如果有就移除了,那有的话移除完咱们下边呢再去,呃,看看你这个CR当中到底有哪些数据,这块你可以再重新的写一个特去遍历哈。
02:19
这样再便利,大家是不是得再重新去获取一个呀,能能还直接接着调这个hand next这块去写,不能上来就这样再去,我想从头变利啊,能上来这样不就不行了,因为你当前这个对象呢,是不是从头到尾出去的时候呢,这个指针已经是到最后了啊,指针已经到最后了,然后呢,你现在又想便利,你是不是得重新再得到一个特对象,让指针再从头再开始是吧?嗯,这要注意一下啊,那在这里边儿呢,我们就输出一下。嗯,它的next方法啊,这呢,咱们相当于是做了一个移除操作啊,这个做的事呢,就是删除集合中啊这个Tom这个数据。
03:09
哎,如果有的话呢,就删掉,那删完以后呢,我们这块呢,再去从头啊重新去遍历一下即合,那我们看一下里边还有没有这个汤姆,一开始是有的。这块呢,我们是做一个啊,这个刚说了这个事了是吧,这样调的话呢,这不是再判断已经没有了,嗯,所以这块我们得需要去重新的去生成啊,这个CL点特这个方法。诶好,这样的话呢,我们输入这个结果里边,你发现就没有这个诶Tom了,相当于呢,我们这个迭代器啊,主要功能呢,是用来做迭代的,没有问题,那同时的话呢,我们还具有一个功能啊,说内部啊定义了一个叫方法。
04:03
哎,用方法我们说呢就可以啊,这个删除或者叫在便利的这个时候啊,哎,这个删除集合中的元素啊,注意此方法呢,它这个不是啊,调用的谁呢啊,此方法这个说叫不同意吧,不同于咱们这个集合啊,直接调用remove,咱们现在调的是迭代器里边的remove,不是咱们讲的collection collection里边那个啊,这是两个方法,行这呢就相当于做了一个移除操作啊,其实也不是特别复杂了,这块需要大家注意的问题,需要注意的问题我在这个PPT里边呢写了。嗯,在这写的红色的说呢,如果还未调用next。或在上一次调用耐方法之后啊,已经调用了瑞了,这时候你要再调就会报这样的一个异常。
05:06
这是两种情况啊,就是相当于第一种情况就是你要是没有掉next呢,就直接上来就瑞remove就报这个异常了,或者让你掉next以后呢,掉了呢,你又掉一次,这时候也报这异常,其实这两种说明了合情合理啊,就是大家如果有必要你去掉瑞木的时候呢,你小心一点,比如说啊,那我演示一下这两种情况,咱们上来呢,得到一个迭代器了,迭代器的话呢,这孩子判这个做一个判断了,关键呢就是说这个事儿就是在你没有调next之前呢,就不要去调remove。我这时候要做这个瑞木,不管你是什么我都瑞木啊,肯定错吧,对吧,你这时候这个指针,你指针是不是还在这呢,我还没掉nice,指针还没下来呢啊嗯,你还在这儿呢,你掉瑞木删谁呀。
06:00
没东西,哎,所以呢,他就报错了这个对,然后另外一种情况呢,就是你呃调过这个next,比如说我们指针在这儿,哎,我在这个位置的时候呢,我调瑞幕相当于你把它呢,哎呦相当于你把它呢,这不就给干掉了吗?你干掉了,掉了一次蕊木呢,你又掉一次蕊木就不对了,是吧,就是你不能删两次啊这呢是咱们这个说的这个,呃,第一种这个情况了,第二种情况呢,就是我掉了这个瑞remove以后,瑞remove呢,你在下一次next之前呢,又掉过瑞remove。你就好比是你这块写了两次呗。啊也是那会出现这样的错误啊,这呢大家注意一下这个情况就行,把这个点呢,咱们就哎这个拿过来啊,说一下就可以了啊其实比较好理解。行,这是这样的一个使用上的一个问题,这呢就关于这个remove方法,这个方法的话呢,其实咱们这个从使用频率上来讲啊,不是特别多,主要呢,我们这个迭代器的话呢,就是调它的has next和next进行遍历,哎这要注意这个呢遍历注意我们只是用来遍历collection,后边呢,咱们不是还要讲一个叫做map吗。
07:14
咱们讲这个集合框架这块呢,这不是提到collection,诶DAY05里边的还有一个呢,叫做map,这个map的话呢,便利不用迭代器啊,咱们这个呢,主要是用来便利它的,不包括它,哎注意。
我来说两句