0

我有这个代码:

_leftArray[0] = _square[6][4];
_leftArray[1] = _square[8][4];
_leftArray[2] = _square[9][5];

我希望能够提取数组的值。我想编写一个将数组位置作为参数并返回坐标的方法。因此,如果该方法被称为 returnCoordinatesFromArray,我可以键入 returnCoordinatesFromArray[1] 并返回 6 作为变量和 4 作为变量,这样我就可以在另一个方法中使用它们。

4

3 回答 3

1

如果这些是静态的、硬编码的值,为什么不这样做:

Map<Integer, int[]> indexToCoordinateMap = new LinkedHashMap<Integer, int[]>();
indexToCoordinateMap.put(0, new int[]{6, 4});
indexToCoordinateMap.put(1, new int[]{8, 4});
indexToCoordinateMap.put(2, new int[]{9, 5});

那你就不需要这个方法了。您可以简单地获取一个值数组,其中0th索引是 x 坐标,1st索引是 y 坐标。当然,这是约定俗成的。如果您想更具体,可以使用Point并执行以下操作:

Map<Integer, Point> indexToPointMap = new LinkedHashMap<Integer, Point>();
indexToPointMap.put(0, new new Point(6, 4));
indexToPointMap.put(1, new Point(8, 4));
indexToPointMap.put(2, new Point(9, 5));

然后你可以简单地做:

Point point = indexToPointMap.get(0);
于 2013-04-02T22:31:20.893 回答
0

做一个双循环并保存 x 和 y 位置。

_square value;
int posX=0;
int posY=0;
for(int i=0; i<arr.length; i++) {
   for(int j=0; j<arr.length; j++) {
      if(arr[i][j]==value) {
         posX=i;
         posY=j;
      }
   }
}
于 2013-04-02T22:31:04.543 回答
0

我可以键入 returnCoordinatesFromArray[1] 并返回 6 作为变量和 4 作为变量” 按照设计,在 Java 中不可能一次返回两个值。如果您需要做这样的事情,您可以构建自己的包含两个变量的小对象:

public class Tupel{
    private int firstIndex;
    private int lastIndex;

    public Tupel(int firstIndex, int lastIndex){
       this.firstIndex=firstIndex;
       this.lastIndex=lastIndex;
    }

    public int getFirstIndex(){
       return this.firstIndex;
    }
     // the same for lastIndex
}

然后你将你的 Tupels 存储在一个数组Tupel[] leftArray中,例如

leftArray[1] = new Tupel(6,4);

或者您使用现有的类,例如Point它们是否符合您的需求。

于 2013-04-02T22:37:14.443 回答