[英]Array Index out of bound 2D array
我有一个二维数组,没有。 行是1和否。 列> 1。
double[][] T = new double[1][24];
System.out.println(T[1].length);
但是当我打印列的长度时,它表示索引超出范围。
但是当我打印以下内容时,
System.out.println(T[0].length);
我得到24的结果。但是T [0]不应该等于1而T [1]不能等于24吗? 为什么我收到此错误? 我想,java认为上面的数组是1D数组,因为它只有一行。 但我需要它作为进一步处理的2D数组。 有人可以帮忙吗?
数组索引从0开始。
如果数组长度为1
(此处为第1维),则只能引用元素0
。
换一种说法:
1
) 0
) Array
索引从0
开始。
您的数组长度为1,因此T[0]
是有效索引,但T[1]
不是。
System.out.println(T[0].length);
是正确的。 因为Array索引从0开始
数组基于零,所以当double[][] T = new double[1][24];
你创建了一个二维数组,第一个维度是1,第二个是24,所以这是1 * 24数组
所以System.out.println(T[1].length);
给你java.lang.arrayindexoutofboundsexception
由于数组是基于零的
如果你写了这个double[][] T = new double[3][24];
你有3 * 24阵列: -
System.out.println(T[0].length);//24
System.out.println(T[1].length);//24
System.out.println(T[2].length);//24
System.out.println(T[3].length);//java.lang.arrayindexoutofboundsexception
Array
索引从0开始。
double[][] T = new double[1][24];
也可以声明如下:
double[][] T = new double[1][];
T[0] = new double[24];
想象1X24的矩阵。 你没有第二列如此明显它将通过nullpointerException。
在Java / Android和许多其他语言中,这是如何声明的
matrix[numRows][numColumns]
由于Array
索引从0
开始,因此需要注意确保访问单个值
x = matrix[0][1]
或者,如果您正在访问第一行(作为单维数组)
x = matrix[0]
数组索引从0开始,而不是1。
如果你的数组长度是1,那么你可以从0开始。所以T [0]是一个有效的索引,但T [1]不是
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.