在Java中,我具有以下数组'integerArray'并向其中添加2个整数。

Integer[] integerArray = new Integer[3];
integerArray[0] = 1;
integerArray[1] = 2;

现在,我从阵列中创建一个列表。
List<Integer> integerList = Arrays.asList(integerArray);

此时,“integerList”包含1和2。

现在,我向数组添加了另一个元素。
integerArray[2] = 3;

至此,如果我们检查integerList,我们会看到它包含1,2,3;

使用什么机制使对Array的任何更改也反映在List中?一个简单的实现或示例将真正有帮助。

最佳答案

返回由指定数组支持的固定大小的列表

这意味着返回的列表对象(实际上是ArrayList)具有对数组的引用,而不是副本。由于它具有对该数组的引用,因此对它的任何更改都将反映在列表中。
Arrays.asList方法仅调用ArrayList的构造函数,定义如下:

ArrayList (E[] array) {
    if (array == null)
        throw new NullPointerException();
    a = array;
}

因此,a字段将存储对初始数组的引用。

08-19 12:14