欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

异常java.util.ConcurrentModificationException小问题

程序员文章站 2022-05-17 20:33:30
...

现在重新开始写Java总是遇到一些小问题,问题虽蠢虽小,但还是决定从今天开始完整记录下来

	Iterator<Boom> it = boomlist.iterator();
	while (it.hasNext()) {
		Boom boom1 = it.next();
		boom1.drawboom(this, g);

		if ((System.currentTimeMillis() - boom1.timenow) >= 500) {
			boomlist.remove(boom1);
		}}

Exception in thread “AWT-EventQueue-0” java.util.ConcurrentModificationException
从异常看java.util.ConcurrentModificationException:字面意思并发修改异常。
出现该异常一般是检测到对象的并发修改,但不允许这样修改,就会抛出这样的异常。
当collection接口如list 被一个线程调用那么另一线程就不允许修改collection。

这一点我是非常清楚的:即遍历过程中不能进行修改,这也是使用Iterator迭代器的原因
但是我在调用remove方法时,依然是用原list进行删除,改为用迭代器调用即可,应为it.remove();

相关标签: problem