1.序言
本文主要以JDK1.8为基础,分析ArrayList产生ConcurrentModificationException异常的原因和解决方案
2.正文
- 示例程序
package com.learning.jdksource;
import java.util.ArrayList;
/**
* Description: 【JDK源码-ArrayList】
*
* @author guodong.fang
* @date 2020/3/25 21:36
*/
public class ArrayListDemo {
public static void main(String[] args) {
// 创建一个ArrayList,并向其中添加3个字符串("one","two","three")
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("one");
arrayList.add("two");
arrayList.add("three");
// 增强型for,内部原理其实是调用ArrayList的iterator()
for (String tmp : arrayList) {
// 移除指定的元素("one"换成"two","three"错误信息一致)
if ("one".equals(tmp)) {
arrayList.remove(tmp);
}
}
}
}
- 异常信息
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
at java.util.ArrayList$Itr.next(ArrayList.java:859)
at com