我只是想知道用一个或多个长度为0的列声明一个2d参差不齐的数组是否合法。如果它是合法的,它实际上会做什么?
答案 0 :(得分:1)
答案是肯定的,这是可能的。但接下来还有另一个问题,你为什么要考虑这样做呢?我问这个的原因是考虑你在这里尝试做什么。列长度为0的数组在技术上是一个空的2D数组。但是,我将展示如何做你要问的事情和将要发生的事情。
int[][] arr = new int[2][0]; //initializing a 2x0 array, which is 2 rows of size 0
或者如果您正在尝试制作锯齿状阵列
int[][] arr = { {},{2} }; //this is a 2d array in which the first row has zero columns and the second row has one column
但是当您尝试对此阵列进行操作时会发生什么?您出乎意料地获得了编译器错误,但是您将收到运行时错误。假设我添加了这行代码并尝试运行程序,
arr[0][0] = 1;
我会得到的错误就是这个,
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
因为我无法使用大小为0的列访问二维数组中的任何元素。