首页 > Java > java教程 > 正文

从 ArrayList 中删除元素时如何避免 ConcurrentModificationException?

Barbara Streisand
发布: 2024-10-30 20:34:30
原创
345 人浏览过

How to Avoid ConcurrentModificationException When Removing Elements from an ArrayList?

从 ArrayList 遍历和删除元素时如何克服 ConcurrentModificationException

在并发删除元素的同时迭代 ArrayList 可能会触发臭名昭著的 java.lang.Error 错误。 util.ConcurrentModificationException。为了解决这个问题,有几个最佳实践需要考虑。

一种方法是创建一个单独的要删除的元素列表。在循环迭代期间,将这些元素添加到辅助列表中,迭代结束后,调用originalList.removeAll(valuesToRemove)方法。

或者,您可以直接在迭代器上使用remove()方法。请注意,此技术要求您避开增强的 for 循环。例如,要从列表中消除长度超过 5 的字符串:

List<String> list = new ArrayList<String>();

for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) {
    String value = iterator.next();
    if (value.length() > 5) {
        iterator.remove();
    }
}
登录后复制

以上是从 ArrayList 中删除元素时如何避免 ConcurrentModificationException?的详细内容。更多信息请关注PHP中文网其他相关文章!

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