ArrayList引用对象

时间:2015-02-10 03:26:34

标签: java arraylist

对于持有对象引用的ArrayLists意味着什么,我有点困惑。有人能给我一个关于如何在代码中显示它的例子吗?此外,arraylist可以有一个参考自己的元素吗?谢谢!

2 个答案:

答案 0 :(得分:0)

这意味着不是逐字节地复制对象,而是将存储对象的内存位置的引用放在列表中。

List<Object> objects = new ArrayList<Object>();
Object myObject = new Object();
objects.add(myObject);
// objects contains one reference to myObject

objects.get(0).modify();
// myObject modified

请注意,将复制原始值(例如int)。

答案 1 :(得分:0)

您必须开始区分变量,值和对象。

变量是容器。它们包含值。

值可以是两种类型,原始值和引用。参考值是指向对象的指针。

对象是也具有行为的数据结构。

所以在

Object var = new Object();

var是一个变量。 new Object()是一个新的实例创建表达式,其值为Object,该值是对Object类型对象的引用。然后将该值分配给var

然后,您可以使用var来调用方法

var.toString();

运行时环境将评估var,它会生成一个引用值,检索引用的对象,并调用该方法。您可以通过执行

重新分配var中存储的值
var = someOtherValue;

现在var将保留一个新值。

ArrayList在幕后使用数组。数组是一个特殊的对象,其元素(您可以将其视为字段)本身就是变量。

所以

Object[] arr = new Object[10];

是一个类型为Object的数组,其中包含十个变量。这些变量包含Object类型的值。同样,这些值是参考。您可以评估它们,也可以重新分配它们。

arr[3].toString();
arr[7] = "maybe a string";
arr[9] = arr[9]; // possible, but makes no sense