Java如何在List中存储对象?

时间:2011-06-16 09:22:04

标签: java list

我必须使用现有的应用程序,并且有一个List存储所有渲染的对象,以便稍后在gui更改时将其删除。

这是List:

private List<Component> registeredComponents = new ArrayList<Component>();

现在我想知道Java是否只存储对象的引用(ZK组件),或者它是否存储了对象的副本。问题是我是否应该删除它。

2 个答案:

答案 0 :(得分:13)

该列表仅包含参考。这适用于所有类型的集合,而不仅仅是ArrayLists。

在Java中,实际上没有办法来实现&#34;抓住&#34;对象本身。当你创建一个新对象时,你得到的只是对它的引用(并且没有办法#34;取消引用&#34;它通过使用例如C ++中的*运算符)。 / p>

答案 1 :(得分:3)

List存储对象的引用,而不是副本。对象实例与恰好有另一个引用它们的任何其他人共享。

至于想要删除它,如果你以后有另一种方法从GUI中删除对象(也许你可以查询父组件或其他东西),列表可能是多余的。但即便如此,这里可能没有太大的开销,也没有让你的程序变得复杂。