【发布时间】:2013-03-17 03:53:43
【问题描述】:
假设我正在删除一个名为“Enemy”的“死”对象。
使用这样的东西:
for(int i = 0; i < enemies.size(); i++)
{
Enemy en = (Enemy) enemies.get(i);
if(en.getVisible() == true)
en.update();
else
enemies.remove(i);
}
对象从 ArrayList 中删除后是否会被删除?还是“应该”?我以前主要是在做 C++ 代码,垃圾回收让我很困惑。
有什么方法可以查看垃圾收集器是否正在删除对象?
谢谢
【问题讨论】:
-
在java中,你不必担心这些情况。垃圾收集器会处理这个问题。
-
不,它们不会被删除,你会得到
ConcurrentModificationException:) -
是的。我要这么说。谢谢@denis.solonenko...梅森你甚至运行过这段代码吗?
-
删除后尝试获取该对象,您会知道它是否已删除
-
@Mason.. 如果您想从 Collection 实现中删除项目,建议的方法是采用
Iterator并从迭代器中删除项目。否则你会得到ConcurrentModificationException
标签: java loops arraylist garbage