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