在Java中的2D数组中替换?
在这个程序中,我试图创建一个坐标平面并替换一个特定点上的值。如果平面中的最大值为2,此代码将创建一个最大值和最小值均为2的二维数组,并对轴进行如下编号:在Java中的2D数组中替换?,java,multidimensional-array,Java,Multidimensional Array,在这个程序中,我试图创建一个坐标平面并替换一个特定点上的值。如果平面中的最大值为2,此代码将创建一个最大值和最小值均为2的二维数组,并对轴进行如下编号: String [][] grid = new String [max+max+2][max+max+2]; for (int i=0; i<max+max+1; i++) for (int j=0; j<max+max+2; j++) grid [i][j]="
String [][] grid = new String [max+max+2][max+max+2];
for (int i=0; i<max+max+1; i++)
for (int j=0; j<max+max+2; j++)
grid [i][j]="o";
for (int i=0; i<max+max+1; i++)
{Integer Col=new Integer(max-i);
grid [i][0]=Col.toString();}
int [] firstRow= new int [max+max+1];
for (int i=0; i<firstRow.length; i++)
firstRow [i]=max-max-max+i;
ex:
-2 -1 0 1 2
2 o o o o o
1 o o o o o
0 o o o o o
-1 o o o o o
-2 o o o o o
String[][]网格=新字符串[max+max+2][max+max+2];
对于(inti=0;i,如果从
-2 -1 0 1 2
2 o o o o o
1 o o o o o
0 o o o o o
-1 o o o o o
-2 o o o o o
为此,首先要更改数组的生成和索引方式
-2 -1 0 1 2
-2 o o o o o
-1 o o o o o
0 o o o o o
1 o o o o o
2 o o o o o
创建一个变量来保存数组的大小,即
int arrSize = 2*max + 2;
创建另一个变量以保存位置(0,0)的数组索引
您可以使用网格[arrMid][arrMid]访问位置(0,0)
在您的示例中,假设x=1和y=-1,只需将该位置更新为“p”:
对于这些和if
块,您确实应该使用括号来表示它们中的大多数。我敢打赌这是您的问题
int arrSize = 2*max + 2;
int arrMid = arrSize/2;
Integer airx = new Integer (airport1.getX()); // 1
Integer airy= new Integer (airport1.getY()); // -1
grid[arrMid + airx][arrMid + airy] = "P"; // grid[4][2] = "P";