增强for循环在遍历集合的时候,底层是使用迭代器来实现的。当我们在for循环内部操作时,就会抛出一个异常。如下
package com.deepCopy;
import java.util.List;
import java.io.IOException;
import java.util.ArrayList;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, IOException {
List<String> personList=new ArrayList<String>();
personList.add("zhangsan");
personList.add("lisi");
/*for(int i=0;i<personList.size();i++){
if(personList.get(i).equals("zhangsan")){
personList.add("wangwu");
}
}*/
for (String string : personList) {
if(string.equals("zhangsan")){
personList.add("wangwu");
}
}
System.out.println(personList);
}
}
运行结果
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819