我正在尝试用Java创建一个Arraylists数组。我已通过以下方式宣布:
ArrayList[][][] arrayQ = new ArrayList[90][13][18];
for (int i = 0; i < 90; i++) {
for (int j = 0; j < 13; j++) {
for (int k = 0; k < 18; k++) {
arrayQ[i][j][k] = new ArrayList<int>();
}
}
}
但是,在while循环中添加<int>
会引发错误(我正在使用的IDE不会给我一个非常好的错误消息)。
创建整数ArrayList的正确方法是什么?
答案 0 :(得分:10)
Java Collections只能保存对象。 int
是原始数据类型,例如,不能保存在ArrayList
中。您需要改为使用Integer。
答案 1 :(得分:4)
这是一个完整的例子:
ArrayList<Integer>[] foo = new ArrayList[3];
foo[0] = new ArrayList<Integer>();
foo[1] = new ArrayList<Integer>();
foo[2] = new ArrayList<Integer>();
foo[0].add(123);
foo[0].add(23);
foo[1].add(163);
foo[1].add(23789);
foo[2].add(3);
foo[2].add(2);
for (ArrayList<Integer> mylist: foo) {
for (int bar : mylist) {
println(bar);
}
}
答案 2 :(得分:3)
new ArrayList<int>()
更改为new ArrayList<Integer>()
,您应该没问题。
如果可能的话,我建议使用Eclipse作为您的IDE。它提供(通常)非常具体,详细且通常有用的错误消息,以帮助您调试代码。
答案 3 :(得分:2)
问题是ArrayList
需要Objects
- 您不能使用原始类型。
您需要撰写arrayQ[i][j][k] = new ArrayList<Integer>();
。
答案 4 :(得分:1)
看起来你正在混合非通用和通用的ArrayLists
。您的ArrayList
3D数组使用非泛型,但您尝试分配通用ArrayList<int>
。尝试切换其中一个以匹配另一个。