首页 >Java >java教程 >在迭代期间从 ArrayList 中删除时如何避免 ConcurrentModificationException?

在迭代期间从 ArrayList 中删除时如何避免 ConcurrentModificationException?

Barbara Streisand
Barbara Streisand原创
2024-12-19 08:51:13532浏览

How to Avoid ConcurrentModificationException When Removing from an ArrayList During Iteration?

在迭代期间从 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn