原因分析:非线程安全的集合(如:ArrayList,LinkedListHashMap,HashSet…)中,都会有一个叫做modCount的变量,用来记录你从结构上修改此容器的次数,如增删改。同时,该值不可在你对该集合进行迭代时更改,否则就会抛出ConcurrentModificationException。即对一个非线程安全的集合遍历的同时,不可对该集合进行了增删的操作
错误代码:
for(Contacts contacts1:contacts){
if(contacts1.getId().equals(id)){
contacts.remove(contacts1);
}
}
改正代码:
for(int i = 0;i<contacts.size();i++){
Contacts contacts1 = contacts.get(i);
if(contacts1.getId().equals(id)){
contacts.remove(contacts1);
i--;
}
}