用int[]a=new int[0][N]清除时java中的2D数组长度

用int[]a=new int[0][N]清除时java中的2D数组长度,java,arrays,width,2d,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阵列的宽度和高度 您正在制作一个大小为零的数组,该数组将容纳大小为5的数组 int[][] array = new int[0][5]; 您必须至少给出维度1

有人能给我解释一下为什么这不起作用吗:

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];

您正在创建一个大小为零的数组,该数组将容纳大小为5的数组

int[][] array = new int[0][5];
您必须至少给出维度1

int[][] array = new int[1][5];  
基本上变成了一维数组

int[] array = new int[5];
您试图创建零大小的数组,请记住,在2D数组中,第一个[]表示
数组的
大小

例如:

int[][] a = new int[2][4];    
a = {(1,2,3,4}, {5,6,7,8}}
System.out.println(a.length);// would return `2`
您试图创建零大小的数组,请记住,在2D数组中,第一个[]
表示
数组的
大小

例如:

int[][] a = new int[2][4];    
a = {(1,2,3,4}, {5,6,7,8}}
System.out.println(a.length);// would return `2`

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];
int[]a=新的int[x][];
对于(int i=0;i

x
为零时,则
y
不相关,因为从未创建过大小为
y
的数组。事实上,在一般情况下,没有理由要求
x
数组的大小相同,甚至不存在,因为a的任何元素都可以是
null
而不是
int
数组。

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];
int[]a=新的int[x][];
对于(int i=0;i

x
为零时,则
y
不相关,因为从未创建过大小为
y
的数组。事实上,在一般情况下,
x
数组没有理由需要相同的大小,甚至不存在,因为a的任何元素都可以是
null
而不是
int
数组。

请澄清,这不是一个问题:p请澄清,这不是一个问题:假设第一个括号表示2D数组的大小有点正确,但也有点混乱。例如,如果你说“数组的数量”,这就不那么模棱两可了。这很令人困惑,因为您可以引用许多数组,但您指的是外部数组。它也可以被描述为行和列,但这更像是一种抽象。说第一个括号决定了2D数组的大小有点正确,但也有点混乱。如果你说“数组的数量”,这就不那么模棱两可了。这很令人困惑,因为您可以引用许多数组,但您指的是外部数组。它也可以被描述为行和列,但这更像是一种抽象。