今天在项目中使用list.remove方法报错ConcurrentModificationException,原因是我一边遍历循环list集合,一边对list集合进行了remove操作。详细原因debug看源码,此处不再赘述。
解决办法:
使用迭代器的remove方法就不会报错
例:
public class Test {
public static void main(String[] args) {
List<Integer> listA=new ArrayList<>();
listA.add(1);
listA.add(2);
listA.add(3);
listA.add(4);
listA.add(5);
listA.add(6);
Iterator<Integer> iterator=listA.iterator();
while(iterator.hasNext()){
Integer a=iterator.next();
if (a==4) {
iterator.remove();
}
}
for(Integer b:listA){
System.out.println(b);
}
}
}