【发布时间】:2018-06-12 22:59:41
【问题描述】:
我正在开发用于布朗运动跟踪的处理程序。
我有一个 ArrayList blobs 和 ArrayList tomerge。第一个是我跟踪的粒子列表,第二个是我要合并的粒子列表。
每个粒子都是一个 Blob 类对象。 Blob 对象在其数据中包含称为 lespoints 和 int id 的向量的 ArrayList。
由于我需要将几个粒子合并为一个,我需要销毁一些 Blob 对象,但是 Java 没有任何析构函数,我不想使用 finalise()。这会像合并 + 破坏一样工作吗?
public void delete(Blob a)
{
a = null;
}
void merge(ArrayList<Blob> tomerge)
{
int i = 0;
int j = 0;
while (i <= tomerge.size())
{
Blob k = new Blob();
k = tomerge.get(i);
while (j <= tomerge.get(i).siz()) {
Vector g = k.lespoints.get(j);
lespoints.add(g);
j++;
}
if (i > 0)
{
delete(tomerge.get(i));
}
i++;
}
}
【问题讨论】:
-
是的,只需从 ArrayList 中删除合并的 blob,Garbage Collect 就会在适当的时候捡起它们
-
你的
delete函数没用,永远不会做任何事情。它复制一个引用并将副本清空 -
我只是需要修复这个问题的代码格式,它伤害了我的眼睛
标签: java processing