解决遍历迭代器时添加元素会出现异常的问题

本文介绍了一种解决在遍历迭代器过程中因其他线程添加元素而导致的ConcurrentModificationException异常的方法。通过使用clone()方法复制原始集合,在副本上进行遍历操作,避免了异常的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在写代码时遇到了一个异常

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添加元素时就没有影响了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值