java - 列表数组中的 ArrayList

标签 java arrays list arraylist multidimensional-array

如何创建一个 3 维列表数组,其中每个元素都包含一个 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;
}

最佳答案

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

关于java - 列表数组中的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61178935/

相关文章:

c - 在 C 中通过引用传递数组

python - 一次将集合中的多个唯一字符串项替换为多个其他字符串项

python - 如何从 Python 中的列表列表中删除超集列表?

java - 依赖注入(inject)和多个实例

java - 使用 java 9 时无法执行 maven-compiler-plugin :3. 6.1:testCompile

java - 在 Hibernate 中快速插入许多实体

java - 如何阻止我的日志文件相互添加?

python - 在 Python 中使用字节数组

mysql - 创建列和行 mysql

多个列表的java高效连接