在使用迭代器和增强 for 循环遍历 Java List 集合时,如果在遍历过程中修改集合数据,就会抛出 'ConcurrentModificationException' 错误。这是因为迭代器在遍历过程中会维护一个指向当前元素的指针,而修改集合数据会改变集合的内部结构,导致迭代器无法继续正常遍历。

为了避免该错误,在使用迭代器遍历集合时,应该使用迭代器的 'remove' 方法来删除数据。例如:

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
  String item = iterator.next();
  if (item.equals("b")) {
    iterator.remove(); // 使用迭代器的 remove 方法删除元素
  }
}

需要注意的是,在使用增强 for 循环遍历集合时,无法使用迭代器的 'remove' 方法。如果需要在使用增强 for 循环时修改集合数据,建议先将集合复制到一个新的集合中,然后在新的集合上进行操作。

总之,在遍历 Java List 集合时,如果需要修改数据,应该使用迭代器的 'remove' 方法来避免 'ConcurrentModificationException' 错误。

Java List 集合遍历修改数据导致 ConcurrentModificationException 错误及解决方法

原文地址: https://www.cveoy.top/t/topic/owoB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录