ArrayList中的数组问题,Java
我创建了一个名为current_map
的多维数组
我正在尝试访问current_map
:
current_map[0][1]
但是,我收到了错误:
error: array required, but String found
这是我的代码,供您观赏
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"
}
}
我怎样才能阻止这个问题
# 1 楼答案
您可以这样做:
注意,在Java数组中,索引是基于0的,所以第二行第二列用(1,1)表示,而不是(2,2)
希望这有帮助
# 2 楼答案
除非有令人信服的理由对每个get命令进行完整复制,否则应该使用现有结构
# 3 楼答案
您所拥有的并不是真正的多维表示,因为您访问不同维度的方式并不一致。它的语义,但要称之为真正的多维(包括符号),您需要这样的东西(请参考this了解此代码的源代码。我不是此代码的所有者。)
# 4 楼答案
您已经说过
obj_map
是一个String[]
,但在下一行中,您将其视为一个2D数组