java - ArrayList 的并发修改异常

标签 java arraylist java.util.concurrent concurrentmodification

我遇到了 ConcurrentModificationException 问题。

我有一个我定义的Complex类的ArrayList。我添加了两个Complexes,并尝试为每个执行循环,但我得到了ConcurrentModificationException。但是,当我删除该行时,我没有收到任何错误。我需要这些初始点 (1,0)(-1,0) 来计算稍后需要的点。

        for (Iterator<Complex> num = dots.iterator(); num.hasNext();) {
            // ConcurrentModificationException
            Complex aComplex = num.next();
            // clone it and clear
            temp.add(new Complex(aComplex));
            dots.clear();
        }

最佳答案

在迭代集合时无法修改集合。如果你想移动dots.clear();和 temp.clear() 迭代之外;它会得到解决。如果需要,您可以在需要清除这些集合时创建一个标志;迭代结束后您可以清除它们。

关于java - ArrayList 的并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249482/

相关文章:

java - JPA级联删除

java - 用java居中一个XML创建的按钮

java - 将一个对象拆分为对象列表 - 需要 JAVA8 解决方案

java future 执行

java - ComputeIfAbsent 错误的 map 大小

java - Gradle Android 错误 : MethodHandle. 调用和 MethodHandle.invokeExact

java - 使用 Java ArrayList contains() 评估包含字符串的对象

java - Java 类中的数组列表

java - 在巨大的ArrayList中添加元素会暂时停止

scala - 如何从 scala 伴随对象中获取 AtomicReferenceFieldUpdater?