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

时间:2018-12-07 06:40:48

标签: java arrays multidimensional-array arrayofarrays

  1. int [] [] [] a =新的int [3] [3] [5];
  2. int [] [] [] b =新的int [2] [] []; b [0] =新的int [2]; //这就是为什么我们会出错。 在上面的代码中,java如何包含每个大括号。

在Java中,以上代码将如何在array的数组概念中分配内存。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

  

为什么我们会出错。在上面的代码中,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]只是一个(整数数组),因此会给您错误。

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

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