数组名等于另一个数组名

时间:2019-07-08 15:35:00

标签: java arrays arraylist

我对此行有疑问(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;

}

1 个答案:

答案 0 :(得分:0)

您的方法实际上将数组theData扩展为两倍的容量。由于Java数组无法增长,因此获得两倍大的数组的方法是创建一个新数组theData1,将所有元素移到上方,然后保留新数组,而不是旧的较小的数组。您要询问的行是:

    theData = theData1;

这会将对新数组的引用分配给保存该数组的变量(以前为旧数组)。因此,从这一点出发,theData引用了新数组。至此扩展操作完成。

Java中的数组是引用类型(与原始类型相反)。您可以搜索更多有关其含义的信息。