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