在Java中的2D数组中替换?

在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]="

在这个程序中,我试图创建一个坐标平面并替换一个特定点上的值。如果平面中的最大值为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]="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";