在2d数组中声明列长度为0

时间:2016-07-25 00:23:49

标签: java arrays

我只是想知道用一个或多个长度为0的列声明一个2d参差不齐的数组是否合法。如果它是合法的,它实际上会做什么?

1 个答案:

答案 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的列访问二维数组中的任何元素。