自从我学了二维数组之后我就一直有这个问题..。我希望有人能为我澄清一些事情。
以下是我所知道的
int[] x=新int2;
这个一维数组有两个元素。
int y=new int2;
这个二维数组有六个元素,对吗?(2x3= 6)
但当我观察二维阵列的制作方法时,
现在我遇到的问题是,在这个对象开始时只有两个元素,对吗?,这不意味着二维数组有两个元素。两个一维数组各有3个元素?
所有这些问题都困扰着我,因为y.length = 2和y.length =3
如果我错了,请纠正我,希望有人能帮我。谢谢
发布于 2017-01-15 09:40:43
是的,你是完全正确的。Java本身没有二维数组。它所拥有的只是包含数组的数组,以及用于创建数组的语法糖(new int[2][3])。
但是,您确实可以拥有一个包含不同长度数组的数组:
int[][] array = new int[2][];
array[0] = new int[5];
array[1] = new int[3];
System.out.println(Arrays.deepToString(array));
// prints [[0, 0, 0, 0, 0], [0, 0, 0]]因此,它得到一个int[][],并想知道它包含多少个整数,需要循环遍历外部数组,并对内部数组的长度进行求和。除非您保证所有内部数组都具有相同的长度。在这种情况下,可以将外部数组的长度乘以任何内部数组的长度。
发布于 2017-01-15 10:39:55
在Java中,多维数组实际上是数组的数组。例如,名为arr的二维数组变量如下所示:
int arr[][] = new int[4][5];这将分配一个4×5的数组并将其分配给arr。从概念上讲,这个数组将类似于图中所示的数组:

为多维数组分配内存时,只需为第一个(最左边)维度指定内存。您可以单独分配剩余的维度。例如:
int twoD[][] = new int[4][];
twoD[0] = new int[5];
twoD[1] = new int[5];
twoD[2] = new int[5];
twoD[3] = new int[5];虽然在这种情况下单独分配二维数组没有好处,但可能有一些好处。与手动分配维度一样,您不需要为每个维度分配相同数量的元素。如前所述,由于多维数组实际上是数组的数组,所以每个数组的长度都在您的控制之下。
发布于 2017-01-15 09:48:46
您可以使用这个method来平平多维数组,并在其上调用List#size()。
它甚至会将嵌套的列表、集、地图和队列夷为平地。
https://stackoverflow.com/questions/41659672
复制相似问题