当同时遍历(迭代)和修改 ArrayList 时,会发生 ConcurrentModificationException。本文探讨了处理此异常的最佳实践,概述了替代方法。
避免并发修改异常
为了防止发生异常,有两个选项可用:
Iterator 的移除方法示例:
考虑移除某个长度的字符串的场景ArrayList 中大于 5 的值:
<code class="java">List<String> list = new ArrayList<>(); ... for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }</code>
在此示例中,迭代器的“删除”方法用于在迭代原始列表时安全地修改原始列表。
以上是迭代和修改ArrayList时如何避免ConcurrentModificationException?的详细内容。更多信息请关注PHP中文网其他相关文章!