在迭代期间从 ArrayList 中删除元素时避免出现“ConcurrentModificationException”
在迭代期间尝试从 ArrayList 中删除元素时,例如以下情况例如:
for (String str : myArrayList) { if (someCondition) { myArrayList.remove(str); } }
很可能会遇到“并发修改异常。”出现这种情况是因为 ArrayList 在迭代过程中被修改,这违反了快速失败属性。
解决方案:使用迭代器
要避免此异常,请使用迭代器并调用remove()方法:
Iterator<String> iter = myArrayList.iterator(); while (iter.hasNext()) { String str = iter.next(); if (someCondition) iter.remove(); }
通过使用Iterator,处理ArrayList在迭代过程中的修改在内部确保不会抛出异常。
以上是在迭代期间从 ArrayList 中删除时如何避免 ConcurrentModificationException?的详细内容。更多信息请关注PHP中文网其他相关文章!