java - 删除后销毁所有实例

标签 java list arraylist entity

所以我有 list

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

每当我做类似的事情

entities.get(1).destroy();

它将该方法应用于列表中同一类的每个实体(就像我有类史莱姆 destroy() 会影响所有史莱姆,但不会影响其他内容)。有什么办法可以解决这个问题吗?

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

edit2:好的,完成更多测试,因此您不妨忽略上面的整个部分。在数组列表中,每当我调用remove(int i)时,它都会删除放入位置的对象及其后面的所有对象。

最佳答案

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

当您将 A 类型的变量分配给另一个变量时,仅复制引用。该物体仍然是独一无二的。因此,如果您想销毁某个元素,您应该检查它是否是使用new创建的,正如 JB Nizet 指出的那样。

关于java - 删除后销毁所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550028/

相关文章:

java - hashmap 和 arraylist 连接

java - 如何为文件系统上的文件使用属性占位符

java - 传递和修改全局数组

java - 在 C# 中是否有 'string.Insert()' 的 Java 等效或自定义方法

Python:获取 2d 列表中前 4 个最高值

Java ArrayList 线程不安全示例说明

java - 我如何在 Retrofit2 中使用 jsonapi?

python - 使用 re 替换数组的一部分

python - 在 Pandas 中将数据帧子集为多个数据帧

javascript - GWT - 范围错误 : Maximum call stack size exceeded at spliceArray