ArrayList中的数组问题,Java

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)

我怎么能阻止这个问题呢?

icy*_*com 6

你可以这样做:

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).

希望这可以帮助.