今天在写代码时遇到了一个异常
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
上网查后发现是遍历迭代器时还有一个线程再添加元素
解决的方法是用clone()
克隆一份后在迭代
代码如下:
LinkedList<Point> pathPoints = (LinkedList<Point>) allPaths.clone();
Iterator<Point> iterator = pathPoints.iterator();
while (iterator.hasNext()) {
pathPoint = (Point) iterator.next();
g.fillOval((int) pathPoint.getX(), (int) pathPoint.getY(), 20, 20);
}
这样在向allPaths添加元素时就没有影响了。
本文介绍了一种解决在遍历迭代器过程中因其他线程添加元素而导致的ConcurrentModificationException异常的方法。通过使用clone()方法复制原始集合,在副本上进行遍历操作,避免了异常的发生。
958

被折叠的 条评论
为什么被折叠?



