列表数组中的数组列表-Java

问题描述 投票:1回答:1

如何创建一个在每个元素中包含一个ArrayList的列表的三维数组?

我需要外部对象(数组本身)是“静态的”,并且由于其可能会自行调整大小,因此无法使用arraylist。每个元素的内部列表都需要定期调整大小,这就是为什么我需要arraylist的原因。

理论上,以下代码似乎正确。但是,运行时会产生空指针异常。

public List<ArrayList<Algae>>[][][] populate(int val, int size)
    {
        List<ArrayList<Algae>>[][][] pond = new List[size][size][size];
        for (int i = 0; i < size; i++)
        {
            for(int j = 0; j < size; j++)
            {
                for(int k = 0; k < size; k++)
                {
                    pond[i][j][k].add(new ArrayList<Algae>(2));
                }
            }
        }
        for (int i = 0; i < size; i++)
        {
            for(int j = 0; j < size; j++)
            {
                for(int k = 0; k < size; k++)
                {
                    for(int c = 0; c < val; c++)
                    {
                        pond[i][j][k].get(0).add(new Algae());
                    }
                }
            }
        }
        return pond;
    }
java arrays list arraylist multidimensional-array
1个回答
0
投票

要修复NPE,您应该初始化数组的最里面的项:

                for(int k = 0; k < size; k++)
                {
                    pond[i][j][k] = new ArrayList<ArrayList<Algae>>(2);
                    pond[i][j][k].add(new ArrayList<Algae>());
                }
© www.soinside.com 2019 - 2024. All rights reserved.