我的 Java 2D 数组有问题。
int y = 5;
int x = 4;
int[][] map = new int[y][x];
for (int j = 0; j <= y ; j++) {
for (int l = 0; l <=x; l++) {
System.out.println("j: " + j + " l: " + l);
map[j][l] = 1;
}
}
Java 在到达数组中的最后一个值时抛出此异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
将 for 循环更改为“j < y”和“l < x”有助于解决问题,但第 5 列和第 4 行显然没有打印出来。
有什么办法可以解决这个问题吗?我错过了什么吗?
最佳答案
因为Java中的数组是0
-indexed,数组的长度不是有效的索引。因此,您应该使用 <
而不是<=
在你的 for 循环中:
for (int j = 0; j < y; j++) {
for (int l = 0; l < x; l++) {
System.out.println("j: " + j + " l: " + l);
map[j][l] = 1;
}
}
关于Java 2D 数组无法将值写入最后一个值索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251384/