在對一個對集合進行遍歷的時候,不要對集合進行add或者remove等操作。
原因:
ArrayList的remove方法只是修改了modCount的值,并沒有修改expectedModCount,導(dǎo)致modCount和expectedModCount的值的不一致性,當(dāng)next()時則拋出ConcurrentModificationException異常。因此使用Iterator遍歷集合時,不要改動被迭代的對象。
List<MyPost> items = focusQuestions.list;
for (MyPost item : items) {
if (item.isChecked())
items.remove(item);
}
報錯:
java.util.ConcurrentModificationException
at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
相關(guān)文章:
java.util.ConcurrentModificationException 出現(xiàn)的原因和解決辦法