在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
字段将存储对初始数组的引用。