有人可以向我解释为什么这不起作用:
int[][] array = new int[0][5];
int n = array[0].length;
虽然这确实有效:
int[][] array = new int[5][5];
int n = array[0].length;
当我遇到这个问题时,我正在进行一些单元测试以找到NxN阵列的宽度和高度。
答案 0 :(得分:4)
你正在制作一个零大小的数组,它将容纳一个大小为5的数组
int[][] array = new int[0][5];
您必须至少给出维度1
int[][] array = new int[1][5];
基本上变成一维数组
int[] array = new int[5];
答案 1 :(得分:1)
int[][] a = new int[x][y]
是一个循环的简写,用于创建大小为x
的{{1}}数组:
y
当int[][] a = new int[x][];
for (int i = 0; i < x; i++)
a[i] = new int[y];
为零时,x
无关紧要,因为没有创建大小为y
的数组。实际上在一般情况下,没有理由为y
数组需要相同的大小,甚至存在,因为a的任何元素都可能只是x
而不是null
} array。
答案 2 :(得分:0)
int[][] a = new int[0][5];
您正在尝试制作零大小的数组,请记住在2D数组中first []
代表size
的{{1}}。
示例:
array