java数组名等于另一个数组名
我对这行有疑问(theData=theData;)这是什么意思? 我知道我们创建了一个名为Data1的Thor数组,然后复制元素,所以这条线是什么意思
private void reallocate ()
{
capacity *= 2;
E[] theData1 = (E[]) new Object[capacity];
for (int i = 0; i < size; i++)
theData1[i] = theData[i];
theData = theData1;
}
# 1 楼答案
您的方法实际上将数组
theData
扩展到两倍的容量。由于Java数组无法增长,因此获得一个加倍大的数组的方法是创建一个新数组,theData1
,移动所有元素,然后保留新数组,而不是旧的较小数组。你要问的是:这会将对新数组的引用分配给保存该数组的变量(以前是旧数组)。所以从这一点来看
theData
指的是新的数组。由此,扩展操作完成Java中的数组是引用类型(与基元类型相反)。你可以搜索更多关于它的含义