java中多维数组如何构造索引?

Posted

技术标签:

【中文标题】java中多维数组如何构造索引?【英文标题】:How multi dimensional array construct the index in java? 【发布时间】:2018-12-07 06:40:48 【问题描述】:
    int[][][] a = new int[3][3][5]; int [][][] b = 新的 int[2][][]; b[0] = 新的 int[2]; // 这里为什么我们得到错误。 在上面的代码中,java 如何组成每个大括号。

在java中,上面的代码如何在数组的数组概念中分配内存。

【问题讨论】:

【参考方案1】:

这里为什么我们得到错误。在上面的代码中,java是如何组成每个大括号的。

int [][][] b = new int[2][][];   //b is an array of (array of (array of int))
b[0] = new int[2];               //b[0] is an (array of (array of int))

您将int[2] 分配给b[0] 只是一个(int 数组),因此会出现错误。

b[0] = new int[2][];             //assign (array of (array of int)) to b[0] --> OK

简而言之,b[0] 需要一个 2D 数组,而您当前正在为其分配一个 1D 数组,这会导致错误。

【讨论】:

【参考方案2】:

数组int [][][] b = new int[2][][]; 是数组数组的数组。 所以b[0] 是一个数组数组。您只为第一个维度而不是第二个维度分配内存,因此您会遇到错误。试试b[0] = new int[2][];

【讨论】:

以上是关于java中多维数组如何构造索引?的主要内容,如果未能解决你的问题,请参考以下文章

如何重新索引多维数组的所有子数组元素?

如何从多维数组中获取每个索引的最大值-javascript

多维数组索引 C++ 中的多维数组

Java中如何获取多维数组的长度

如何在VB中连接两个多维数组?

Java:转换 ByteBuffer 多维数组