我有这段代码:
_leftArray[0] = _square[6][4];
_leftArray[1] = _square[8][4];
_leftArray[2] = _square[9][5];
我希望能够提取数组的值。我想编写一个方法,将数组位置作为参数并返回坐标。因此,如果该方法被称为returnCoordinatesFromArray,我可以键入returnCoordinatesFromArray [1]并将6作为变量返回,将4作为变量返回,因此我可以在另一种方法中使用它们。
答案 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
。