给定尺寸的多维数组

时间:2014-11-13 10:43:03

标签: java arrays multidimensional-array

如何根据用户引入的尺寸制作数组?

例如,如果你在该数组中引入了5个(维度),我们需要一个包含4个维度的数组,其中包含3个维度等等...

请帮忙!

2 个答案:

答案 0 :(得分:2)

您可以使用Array#newInstance

int[][][] ar = (int[][][]) Array.newInstance(int.class, 3, 2, 1);
System.out.println(Arrays.deepToString(ar));

int[] dimensionLengths = new int[numberOfDimensions];
Arrays.fill(dimensionLengths, 1);
Array.newInstance(int.class, dimensionLengths);

答案 1 :(得分:0)

由于数组是Object,因此Object(Object [])数组本身可以包含数组,依此类推。 这需要大量的铸件,并且非常不安全和丑陋,但可以做到。

例如:

 Object[] arr3d = new Object[10];          // create the first dimension
 arr3d[0] = new Object[20];                // create the second dimension
 ((Object[])arr3d[0])[0] = new Object[30]; // create the third dimension
 ...
但是,我不推荐实际做到这一点。