欢迎光临散文网 会员登陆 & 注册

增强for循环中为什么不可以进行add和remove操作

2022-11-19 15:26 作者:苏梦北北ing  | 我要投稿

励志当最强课代表的我来给大家总结总结👍👍👍

增强for循环中为什么不可以进行add和remove操作


视频内容:

1️⃣什么是增强for循环✍️

2️⃣增强for循环中进行add和remove操作的时候发生了什么📄


视频内容:

1️⃣什么是增强for循环✍️

  1. 增强 for 循环其实就是对集合的一种简洁的便利方式。
  2. 如上图代码所示,它其实就是一种语法糖。
  3. 将上述的增强 for 循环代码进行编译以后,这里变成了迭代器遍历的一种方式。
  4. 以 AD D 来举例,可以看到在增强 for 循环中进行 AD D 操作的话,它抛出了如上图所示的一个异常。接下来就具体分析一下,这里直接就编译后的迭代器的这种便利方式来追代码。
  5. 直接找到迭代器接口对应的实现类 arrival list 这里直接返回了这样一个对象,它继承了迭代器,并且实现了迭代器当中的一些方法。


00:20




2️⃣增强for循环中进行add和remove操作的时候发生了什么📄

  1. 在 AD D 操作的时候,对这个 mod count 进行了加加。同样是找到对应的迭代器的实现类。可以看到 has next 方法实现很简单,就判断是否有元素。记主要来看它的 next 方法,可以看到这里有一个检查函数,点到检查函数里面可以看到这里它对这个 mode count 和 exact mode count 进行了判断,不相等的抛出一个异常。
  2. 用 mode count 去初始化了一下,所以在这里它们的初始化的值都是0。 AD 操作以后,它会将 mod count 的值进行加1,这样的话在 next 中它就会对这个两个值进行一个判断,结果发现一个是0,一个是1,两个值不相等。
  3. 所以就抛出了下面的这个异常,这就是为什么在增强 for 循环中不可以进行 AD 或者 remove 操作的原因了。


01:34





增强for循环中为什么不可以进行add和remove操作的评论 (共 条)

分享到微博请遵守国家法律