我正在学习Java的多维数组。当我设置arr ={{1,2,3},{4,5,6}}
和int x = arr[2 or more][any digit]
时,ArrayIndexOutOfBoundsException
会出现。
public class Array {
public static void main(String[] args) {
int [][] arr= { {4,5,6,7},{1,2,3,8}};
int x;
for(int a= 0,b= 0;a<= 3 && b<= 3; a++, b++){
try {
x = arr[a][b];
System.out.println("a = "+ a + " b = "+ b +"\n"+ x +"\nCorrect----------------------");
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("a = "+ a + " b = "+ b +"\nERROR------------------");
}
}
}
}
结果:
a = 0 b = 0
4
Correct----------------------
a = 1 b = 1
2
Correct----------------------
a = 2 b = 2
ERROR------------------
a = 3 b = 3
ERROR------------------
答案 0 :(得分:1)
你的for循环经历4x4范围,但你的数组是2x4。
2d数组是一个数组数组。第一个索引是您访问的数组。
你有两个数组,[4,5,6,7]和[1,2,3,8]
访问arr [2]意味着给我第三个数组,而你没有第三个数组
答案 1 :(得分:1)
Runtime rt = Runtime.getRuntime();
long mem = rt.totalMemory();
long fm = rt.freeMemory();
long mm = rt.maxMemory();
long used = mm - fm;
定义了一个2 int [][] arr= { {4,5,6,7},{1,2,3,8}};
的数组:
int[]
所以arr[0]={4,5,6,7}
arr[1]={1,2,3,8}
将抛出异常。