Java:无法更改迭代器列表

标签 java collections iterator

我有一个 ListIterator<PointF> 的列表作为类字段。我用方法填grow() .当我尝试使用此列表中的迭代器时,我得到 ConcurrentModificationException .

ListIterator<ListIterator<PointF>> i = mPoints.listIterator();
while (i.hasNext()) {
    ListIterator<PointF> j = i.next();
    if (j.hasNext())
        PointF tmp = j.next(); // Exception here
}

我不知道为什么这段代码会在之外的任何方法中导致异常grow()

最佳答案

如果基础列表发生变化,则在此之前获得的迭代器将抛出 ConcurrentModificationException。所以不要在实例字段中存储迭代器。

关于Java:无法更改迭代器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172685/

相关文章:

java - join(long millis) 在以下示例中如何工作?

java - 在Eclipse中更改单元测试包名称与相应的生产代码包

java - 无法在 Netbeans 中打开某些 .java 文件

Java - Collections.sort() 性能

c++ - STL 填充和转发迭代器

java - 立即选择微调器后禁用编辑文本

javascript - 如何在 express js 中使用 get 方法从 mongo db 中获取数据?

java - 如何从包含重复值的多个列表中创建唯一数据列表

java - 迭代实现 Iterable<Item> 的类中数组的非空部分

c++ - string erase 使用向后迭代器追加元素