我正在尝试使用Java来创建一个二维数组。行的大小是已知的,而列的大小是未知的。这是我的代码,它不起作用。谁能给我一些想法?
ArrayList<Integer> paths[];
paths = new ArrayList[2];// 2 paths
for (int i=0; i<2; ++i)
paths[i].add(1); // add an element to each path
答案 0 :(得分:1)
在添加数组元素之前初始化它。将初始化放入for
循环:
@SuppressWarnings("unchecked")
ArrayList<Integer>[] paths = new ArrayList[2];
for (int i=0; i<2; ++i) {
paths[i] = new ArrayList<Integer>();
paths[i].add(1);
}
这样您可以避免使用NullPointerException
。
答案 1 :(得分:1)
这是“2d”ArrayList
:
ArrayList<ArrayList<Integer>> paths = new ArrayList<>();
这是Java的非钻石运算符版本&lt; 1.7:
ArrayList<ArrayList<Integer>> paths = new ArrayList<ArrayList<Integer>>();
答案 2 :(得分:1)
我会推荐这个
ArrayList<ArrayList<Integer>> paths = new ArrayList<ArrayList<Integer>>();
for (int i=0; i<2; ++i)
paths.add(new ArrayList<Integer>());