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

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

Barbara Streisand
发布: 2024-12-19 08:51:13
原创
463 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板