ConcurrentModificationException 错误
我在网上搜索过了 遍历过程中增删list造成的 但是我试过了将变量保存起来,遍历完统一删除 还是会报错 逻辑没有问题
我的问题是这样的:
我写了一个飞行射击游戏,有时候飞机会以一定的组合顺序出现,我把它叫做敌阵 ,我写了一个基于定时器的基类,敌阵类继承自这个类,在类中的 timertask中按一定顺序生成敌机加入链表中 , 然后在绘制每一帧的时候检测碰撞并且把碰撞的对象在链表中删掉,一般同时有好几个定时器存在,timertask中我也加入同步变量
=new TimerTask() {
public void run() {
if(getSynflag()==false)
return;
}
每次遍历的时候 用 setSynflag (false) 将 定时器锁住 使它不会增加list中的值
遍历中的值不会直接删掉 用一个list记录 遍历完毕统一删除
但还是出现这个错误 list在遍历的时候明明已经不能变化了
使用了安全线程的CopyOnWriteArrayList也没有用
项目下载地址
http://pan.baidu.com/s/1pJBcpmz
这是我自己兴起写的一个程序 希望能有人帮我看看调试一下 谢谢了
我的问题是这样的:
我写了一个飞行射击游戏,有时候飞机会以一定的组合顺序出现,我把它叫做敌阵 ,我写了一个基于定时器的基类,敌阵类继承自这个类,在类中的 timertask中按一定顺序生成敌机加入链表中 , 然后在绘制每一帧的时候检测碰撞并且把碰撞的对象在链表中删掉,一般同时有好几个定时器存在,timertask中我也加入同步变量
=new TimerTask() {
public void run() {
if(getSynflag()==false)
return;
}
每次遍历的时候 用 setSynflag (false) 将 定时器锁住 使它不会增加list中的值
遍历中的值不会直接删掉 用一个list记录 遍历完毕统一删除
但还是出现这个错误 list在遍历的时候明明已经不能变化了
使用了安全线程的CopyOnWriteArrayList也没有用
项目下载地址
http://pan.baidu.com/s/1pJBcpmz
这是我自己兴起写的一个程序 希望能有人帮我看看调试一下 谢谢了
...全文
相关推荐
java 集合并发操作出现的异常ConcurrentModificationException
Map在遍历时候通常 现获得其键值的集合Set,然后用迭代器Iterator来对Map进行遍历。
老生常谈java中的fail-fast机制
下面小编就为大家带来一篇老生常谈java中的fail-fast机制。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java list利用遍历进行删除操作3种方法解析
主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java你告诉我 fail-fast 是什么鬼
主要介绍了Java你告诉我 fail-fast 是什么鬼,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java中增强for循环的实现原理和坑详解
增强的for循环是在传统的for循环中增加的强大的迭代功能的循环,是在jdk1.5之后提出来的。下面这篇文章主要给大家介绍了关于Java中增强for循环的实现原理和坑的相关资料,需要的朋友可以参考下


