我有String数组,像这样的:Java的多阵列更新
String[][][][][] map = new String[9][13][2][1][1];
,当我试图更新一个FILD,像这样:
map[0][0][1][0][1] = "true";
每FILD被更新为 “真”,这一个:
map[0][1][1][0][1]
这一个:
map[0][2][1][0][1]
为什么会发生这种情况?
这是我的代码:
int UP = 0;
int UP_RIGHT = 1;
int RIGHT = 2;
int DOWN_RIGHT = 3;
int DOWN = 4;
int DOWN_LEFT = 5;
int LEFT = 6;
int LEFT_UP = 7;
String[][][][][] map = new String[9][13][2][1][1];
public PitchMoveHelper() {
String[][] move = {
{String.valueOf(UP), "false"},
{String.valueOf(UP_RIGHT), "false"},
{String.valueOf(RIGHT), "false"},
{String.valueOf(DOWN_RIGHT), "false"},
{String.valueOf(DOWN), "false"},
{String.valueOf(DOWN_LEFT), "false"},
{String.valueOf(LEFT), "false"},
{String.valueOf(LEFT_UP), "false"}
};
String[][] used = {{"used", "false"}};
for(int z = 0; z < 9; z++) {
for(int x = 0; x < 13; x++) {
map[z][x][0] = used;
map[z][x][1] = move;
}
}
//this.updateLeftBand();
//this.updateRightBand();
//this.updateTopBand();
//this.updateBottomBand();
map[0][0][1][0][1] = "true";
System.out.println(Arrays.deepToString(getPitchMap()));
}
是不是你'ArrayIndexOutOfBoundsException'? –
'map [0] [0] [1] [0] [1] =“true”'会首先抛出索引超出范围例外......这表明您可能不会运行您认为正在运行的代码... – assylias
你不正确。用你在问题中提出的四行代码写一个简单的程序,你会检查它是不是真的。使用额外的代码我们可能会帮助更多 – SJuan76