使2D数组在Java中更少



我有一个带有2d数组的Java代码,我想重写这个代码,让它看起来比我以前写的代码少。

我的代码的主要任务是在1.

有什么办法解决这个问题吗?

我数据:

2 0 0 1 1 0 0 0
0 0 1 0 0 1 0 0
0 0 0 0 0 0 0 0
1 0 1 0 0 1 0 1
1 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 1 0 0 1 0 0
0 0 0 1 1 0 0 0

我的代码:

for(int i = 0; i < map.length; i++) {
for(int j = 0; j < map.length; j++) {
if(map[i][j] == map[0][3]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[0][4]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[1][2]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[1][5]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[3][0]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[3][2]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[3][5]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[3][7]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[4][7]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[6][2]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[6][5]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[7][3]) {
gc.fillRect(i, j, 1, 1);
}
if(map[i][j] == map[7][4]) {
gc.fillRect(i, j, 1, 1);
}


}
}

将地图中的每个字段与地图中等于1的每个字段进行比较。所以你可以检查一个字段的值是否为1:

for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[0].length; j++) {
if (map[i][j] == 1) {
gc.fillRect(i, j, 1, 1);
}
}
}

最新更新