use*_*188 3 java arrays jvm multidimensional-array
我创建了一个名为的多维数组current_map.
我想访问current_map:
current_map[0][1]
但是我收到错误:
错误:需要数组,但找到了String
这是我的代码,为您的观赏乐趣
import java.util.*;
import java.util.Map.Entry;
import java.util.ArrayList;
public class TestApp {
private ArrayList<String[]> current_map = new ArrayList<String[]>();
public TestApp() {
current_map.add(new String[] { "0","0","0" });
current_map.add(new String[] { "0","Q","0" });
current_map.add(new String[] { "0","0","0" });
}
public String getValue(int X,int Y){
String[] obj_map = current_map.toArray(new String[current_map.size()]);
return obj_map[X][Y]; // for example, getValue(2,2), should give "Q"
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能阻止这个问题呢?
你可以这样做:
import java.util.*;
import java.util.Map.Entry;
import java.util.ArrayList;
public class TestApp {
private ArrayList<String[]> current_map = new ArrayList<String[]>();
public TestApp() {
current_map.add(new String[] { "0","0","0" });
current_map.add(new String[] { "0","Q","0" });
current_map.add(new String[] { "0","0","0" });
}
public String getValue(int X,int Y){
return current_map.get(Y)[X]; // for example, getValue(2,2), should give "Q"
}
public static void main(String[] args) {
TestApp ta = new TestApp();
System.out.println(ta.getValue(1, 1));
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在Java数组中,索引是从0开始的,因此第2行,第2列用(1,1)表示,而不是(2,2).
希望这可以帮助.