-2

我在制作数组列表时遇到了麻烦,这是代码:
'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

4 回答 4

3

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

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

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

于 2013-05-22T05:06:22.847 回答
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());
}
于 2013-05-22T06:09:48.587 回答
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<>();
于 2013-05-22T05:06:10.217 回答
0

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

List[] solucao= new ArrayList[5];
for(int i=0;i<solucao.length;i++)
{
  solucao[i]  = new ArrayList();
  solucao[i].add(yourObject);
}
于 2013-05-22T05:10:05.667 回答