你如何创建一个整数ArrayList?

时间:2010-11-02 05:20:07

标签: java generics arraylist

我正在尝试用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的正确方法是什么?

5 个答案:

答案 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>。尝试切换其中一个以匹配另一个。