java - Java中初始化arraylist的三维数组

标签 java arrays arraylist

我有一个多维数组,如下:

private static ArrayList [] [] pVTable = new ArrayList [35] [12];

我第一次尝试初始化它是:

for (ArrayList[] x : pVTable) {
    for (ArrayList y : x) {
        y = new ArrayList<TableValue>();
    }
}

这不起作用。

我最终更多地手动完成,如下所示:

for ( int i = 0; i < pVTable.length; i++) {
    for ( int j = 0; j < pVTable[0].length; j++) {
        pVTable [i] [j] =  new ArrayList<TableValue>();
    }
}

效果很好。

虽然我有一个解决方案,但我想知道为什么第一段(更优雅的)代码不能完成相同的工作?

最佳答案

在第一个片段中,如果我们去掉 foreach 运算符的语法糖 (:),代码将转换为:

for (int xIndex = 0; xIndex < pVTable.length; xIndex++) {
    ArrayList[] x = pVTable[xIndex];
    for (int yIndex = 0; yIndex < x.length; yIndex++) {
        ArrayList y = x[yIndex];
        y = new ArrayList<TableValue>();
    }
}

如您所见,没有任何内容分配给实际数组 - 仅分配给临时 y 变量。

关于java - Java中初始化arraylist的三维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298292/

相关文章:

java - Firebase 实时数据库 : Is there a way to avoid calling onDataChange when a value is removed?

arrays - "Text to Column - Fixed Width"的 VBA 代码 - 循环

arrays - 显示不带引号的元胞数组 - MATLAB

java - 如何将计数索引的值分配给ArrayList?不是计数索引的对象

java - Java中.add()返回一个 boolean 值,如何以列表形式返回

java - 在具有自定义对象的 ArrayList 中搜索某些字符串

java - response.getOutputStream 已经被调用

java - 在 jar 中使用 JAR

使用 ImageIO.read 将图像加载为 bufferedImage 时出现 java.lang.IllegalArgumentException : input == null!

java - 测试随机数生成器