【问题标题】:Array of arraylists数组列表的数组
【发布时间】:2013-05-17 00:49:48
【问题描述】:

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

谢谢

【问题讨论】:

标签: java arrays arraylist


【解决方案1】:

为了存储数据首先你必须创建对象。

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());
}

【讨论】:

    【解决方案2】:
    ArrayList<Integer>[] solucao= new ArrayList[6];
    

    应该是new ArrayList&lt;Integer&gt;[6]

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

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

    【讨论】:

    • 在这种情况下,它实际上不应该是new ArrayList&lt;Integer&gt;[6]。此外,for each 循环不适用于分配。
    • @ZongLi re.第二,是的,您是对的,这是我的错误。回覆。首先,真的吗?我想我应该学习模板 + 数组是如何工作的。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-31
        • 2010-10-17
        • 2014-05-03
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        相关资源
        最近更新 更多