在Java中从数组中提取值

时间:2013-04-02 22:24:58

标签: java getter-setter

我有这段代码:

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

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

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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;
      }
   }
}

答案 2 :(得分: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