Nab*_*a K 1 java multidimensional-array
我很难理解为什么一旦我声明了一个多维数组,如:
int t2[][] = new int[5][10] ;
Run Code Online (Sandbox Code Playgroud)
我仍然可以像这样更改数组的长度:
t2[0] = new int[12];
Run Code Online (Sandbox Code Playgroud)
我想一旦我们声明数组是一定长度我们就无法改变它.那怎么可能呢?
从根本上说,二维数组只不过是一个数组数组.所以这:
int t2[][] = new int[5][10] ;
Run Code Online (Sandbox Code Playgroud)
真的是这样做的:
int t2[][] = new int[5][];
for (int i = 0; i < t2.length; i++)
{
t2[i] = new int[10];
}
Run Code Online (Sandbox Code Playgroud)
因此,实际上,您可以t2[x]使用与分配任何其他数组元素相同的方式进行分配.
注意:您没有通过说明扩展数组的长度t2[0] = new int[12].您正在创建一个新的,这意味着如果您已完成任何分配t2[0][x],那么除非您自己复制它们,否则它们将丢失.