删除后删除所有实例

时间:2012-07-18 20:44:53

标签: java list arraylist entity

所以我有清单

public List<Entity> entities;//initialized in constructor by entities  = new ArrayList<Entity>();

每当我做

之类的事情
entities.get(1).destroy();

它将方法应用于同一个类的每个单独实体(如果我有类slime destroy()会影响列表中的所有粘液,而不是其他)。有什么方法可以解决这个问题吗?

编辑:我刚做了一些测试。显然它只影响数组中受影响的第一个实体后的实体。

edit2:好的测试已经完成了,因此你可能会忽略整个上面的部分。在一个arraylist中,每当我调用remove(int i)时,它都会删除放在其中的对象以及它之后的所有对象。

1 个答案:

答案 0 :(得分:2)

检查列表中的所有引用是否都指向单个对象。

A类型的变量分配给另一个变量时,仅复制引用。该对象仍然是独一无二的。因此,如果你想要destroy某个元素,你应该检查它是否已经用new创建,正如JB Nizet指出的那样。