加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么对foreach方法进行并发修改而不对for循环进行修

发布时间:2020-12-15 01:08:01 所属栏目:Java 来源:网络整理
导读:ArrayList 我得到一个concurrentModificationException,但正常的for循环.我没有任何例外. 在正常的forloop像: for(int i=0;i 最佳答案 ForEach循环不会直接在您的集合上循环.它使用了你的集合的迭代器.您可以在集合实现中看到迭代器. 从Arraylist source co

 ArrayList

我得到一个concurrentModificationException,但正常的for循环.我没有任何例外.
在正常的forloop像: –

for(int i=0;i
最佳答案
ForEach循环不会直接在您的集合上循环.它使用了你的集合的迭代器.您可以在集合实现中看到迭代器.

从Arraylist source code起

735 
736     public Iterator

你的foreach循环等于

for(Iterator

因此,如果您在此处执行任何操作,并且同时修改集合,则引擎盖下的迭代器会出现混淆并引发异常.

从JLS开始

List

将被翻译为:

for (Iterator

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读