使用int [] [] a = new int [0] [N]进行解析时,java中的2D数组长度

时间:2012-09-29 22:08:52

标签: java arrays width 2d

有人可以向我解释为什么这不起作用:

int[][] array = new int[0][5];
int n = array[0].length;

虽然这确实有效:

int[][] array = new int[5][5];
int n = array[0].length;

当我遇到这个问题时,我正在进行一些单元测试以找到NxN阵列的宽度和高度。

3 个答案:

答案 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