Java 有没有比这更有效的方法用字符串引用int数组

Java 有没有比这更有效的方法用字符串引用int数组,java,arrays,string,variables,names,Java,Arrays,String,Variables,Names,我有数百个小数组,每个数组包含两个整数,代表屏幕上的x,y坐标。该方法传入一个字符串,该字符串与保存其值的数组同名。而不是像这样硬编码每个案例 public class Main { int[] a = {1000, 500}, b = {900, 400}, c = {800, 300}; public method(String tile) { int x = 0, y = 0; switch(ti

我有数百个小数组,每个数组包含两个整数,代表屏幕上的x,y坐标。该方法传入一个字符串,该字符串与保存其值的数组同名。而不是像这样硬编码每个案例

public class Main {

    int[] a = {1000, 500},
          b = {900, 400},
          c = {800, 300};

    public method(String tile) {
        int x = 0, y = 0;

        switch(tile) {
        case "a": x = a[0]; y = a[1];
        case "b": x = b[0]; y = b[1]; 
        case "c": x = c[0]; y = c[1];
        }
    }       
}
如何更有效地执行此操作?

公共静态void main(字符串[]args) {

int[]a={1000500};
int[]b={900400};
int[]c={800300};
Map StringToFile=新HashMap();
stringToTile.put(“a”,a);
stringToTile.put(“b”,b);
stringToTile.put(“c”,c);
测试方法(“a”,stringToTile);
测试方法(“b”,stringToTile);
测试方法(“c”,stringToTile);
}
公共静态void测试方法(字符串平铺、映射StringToFile){
int[]resultArray=stringToTile.get(平铺);
int x=0,y=0;
if(resultArray!=null){
x=结果射线[0];
y=结果数组[1];
}
System.out.println(String.format(“x:%s;y:%s”,x,y));
}

除了使用数组,还可以使用对象。我不知道这是否有用。

我想你在找一张
地图在每个
案例中
部分。默认设置是失败的。小数组是如何初始化的?它们现在是手动初始化的,我知道这很糟糕。一旦我让程序处于工作状态,我将解决这个问题。这确实有帮助,但我如何循环遍历所有StringToFile.put()?否则,硬编码每一个都和case语句一样多。
    int[] a = {1000, 500};
    int[] b = {900, 400};
    int[] c = {800, 300};

    Map<String, int[]> stringToTile = new HashMap<>();
    stringToTile.put("a", a);
    stringToTile.put("b", b);
    stringToTile.put("c", c);

    testMethod("a", stringToTile);
    testMethod("b", stringToTile);
    testMethod("c", stringToTile);
}

public static void testMethod(String tile, Map<String, int[]> stringToTile) {
    int[] resultArray = stringToTile.get(tile);
    int x = 0, y = 0;
    if (resultArray != null) {
        x = resultArray[0];
        y = resultArray[1];
    }
    System.out.println(String.format("x: %s; y: %s", x, y));
}