假设我有以下代码:
int[][] arr = new int[1][1];
arr[0] = new int[2];
这在 Java 中完全没问题 - 为什么?我假设它为可以容纳单个元素数组的单元素数组分配内存。
如果我可以将任意大小的数组传递给
arr[0]
,为什么我什至能够指定第二维大小?
有什么用例吗
int[][] arr = new int[1][1];
实际上很有用
int[][] arr = new int[1][];
有时(也许大多数时候)我们想要定义一个二维数组,其所有子维度的大小都相同。例如,要定义 2×2 数组,我们可以使用:
int[][] arr = new int[2][2];
但有时候我们可能需要定义一个jagged数组,例如:
int[][] arr = new int[2][]; // 2D array with 2 rows
arr[0] = new int[3]; // first row has 3 columns
arr[1] = new int[1]; // second row has just 1 column