错误类型
java.util.ConcurrentModificationException
出现原因
在foreach增强循环中进行了元素删除操作,只要是集合这样做都会出现这个问题
ConcurrentModificationException是基于java集合中的快速失败(fail-fast)机制产生的,在使用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了增删改,就会抛出该异常。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add("我是第" + i + "个数据");
}
for (String s : list){
if (s.contains("2")){
list.remove(2);
}
}
}
解决办法
使用for循环
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
list.add("我是第" + i + "个数据");
}
for (int i = 0; i < 5; i++) {
if (i == 2){
list.remove(i);
}
}
}