一系列的arraylists

时间:2013-05-22 05:02:06

标签: java arrays arraylist

我无法制作一系列的arraylists,heres的代码是:'ArrayList<Integer>[] solucao= new ArrayList[6];' 并使用以下代码:

           solucao[0].add(1);
            solucao[0].size();
                solucao[1].size();
                solucao[1].add(1);
            solucao[2].size();
            solucao[2].add(1);
                solucao[3].size();
                solucao[3].add(1);
            solucao[4].size();
            solucao[4].add(1);
                solucao[5].size();
                solucao[5].add(1);
            solucao[6].size();
            solucao[6].add(1);
                solucao[7].size();
                solucao[7].add(1);

所有调用大小的调用null。任何人都知道如何解决它?

我正在寻找array of arraylists的数据结构,因为每个array[i]位置都会返回arraylist of integers

谢谢

4 个答案:

答案 0 :(得分:3)

您必须初始化数组中的每个ArrayList

ArrayList[] solucao = new ArrayList[6];
for (int i = 0; i < solucao.length; i++)
    solucao[i] = new ArrayList();

我实际上认为你不能拥有ArrayList数组。显然你可以,但它必须是非通用的。你应该重新考虑为什么要这样做......

答案 1 :(得分:0)

ArrayList<Integer>[] solucao= new ArrayList[6];

应为new ArrayList<Integer>[6]

请注意,IDE会向您发出警告。接下来,初始化数组的每个元素(Java 7):

for(int i = 0; i < solucao.length; i++) {
    solucao[i] = new ArrayList<>();

答案 2 :(得分:0)

数组只是指针或引用。对于每个人,你必须创建一个新的ArrayList对象并将数据存储在其中。

List[] solucao= new ArrayList[5];
for(int i=0;i<solucao.length;i++)
{
  solucao[i]  = new ArrayList();
  solucao[i].add(yourObject);
}

答案 3 :(得分:0)

首先,您必须创建对象。

ArrayList<Integer>[]  ls =  new ArrayList[7];
for (int i = 0; i < ls.length; i++) {
    ls[i] =  new ArrayList<Integer>();
    for(int j = 0 ; j<i ;j++){
        ls[i].add(j);   
    }
    System.out.println(ls[i].size());
}