Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在二维数组中声明列长度为0_Java_Arrays - Fatal编程技术网

Java 在二维数组中声明列长度为0

Java 在二维数组中声明列长度为0,java,arrays,Java,Arrays,我只是想知道,声明一个2d不规则数组,其中一个或多个列的长度为0是否合法。如果它是合法的,它实际上会做什么 答案是肯定的,这是可能的。但是还有一个问题,为什么你会考虑这样做?我问这个的原因是想一想你在这里想做什么。列长度为0的数组在技术上是空的二维数组。然而,我将展示如何去做你所要求的,以及会发生什么 int[][] arr = new int[2][0]; //initializing a 2x0 array, which is 2 rows of size 0 或者如果你想做一个锯齿状的数

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

答案是肯定的,这是可能的。但是还有一个问题,为什么你会考虑这样做?我问这个的原因是想一想你在这里想做什么。列长度为0的数组在技术上是空的二维数组。然而,我将展示如何去做你所要求的,以及会发生什么

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的二维数组中的任何元素。

它将是长度为0的空数组。为什么?哦,我只是想学习Java,我很好奇会发生什么。Protip:学习一种新的编程语言时,尝试是没有坏处的。OP特别问了不规则数组,所以想想
int[][]arr={{},{1,2}@Elliott Frisch我明白了,我将编辑我的答案以适应这一点。我以前不熟悉这个词,谢谢。好吧,我再次修正了我的答案。对不起,我误会了。