|
|
1
3
通常,我会给每个人、实体或任何东西一个称为isMarkedForDeletion的布尔字段。然后在主循环期间,它们要么被告知更新(),要么被标记为删除,它们的索引将被删除 . 填充完删除列表后,可以遍历删除列表并从主列表中删除这些对象。或者,您可以向后迭代,并从列表的末尾提取。 这也许可以解释你的ConcurrentModificationException,也可能无法解释——我以前在使用ArrayList的时候从未得到过它们。然而,我从LinkedList那里得到了它们,这正是你描述的原因,与线程无关。实际原因是使用了迭代器。
这 不会导致异常:
也许是最简单的方法, :
|
|
|
2
1
由于缺少任何代码摘录,这只是一个猜测,但很可能您的渲染是在Swing线程上的ArrayList中进行迭代,而另一个线程(我猜是计时器?)试图从列表中删除此人。 如果是这种情况,一种方法是让Swing将此人从列表中删除(在两个渲染之间),如下所示:
|
|
3
0
出现此问题的一个常见原因是无法修改
另外,因为您有一个GUI,所以您至少有两个线程。Swing和AWT在单独的线程上运行。因此,如果GUI直接访问
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |