当我们使用for循环删除列表中的数据的时候,会存在问题,因为ArrayList的父类AbstractList里有个modCount的字段记录着List的总数,for循环的时候如果增加或者删除了元素,ArrayList的modCount也会变化,那么在下次for循环的时候检查到跟之前的长度不同,此时会报ConcurrentModificationException异常。
解决方法如下:
Iterator it=lists.iterator();
while(it.hasNext){
it.next();//就是你需要删除的那个值
if(true){
it.remove();
}
}