自从我学习二维数组以来,我就一直有这个问题......我希望有人能为我澄清事情......
这是我所知道的
int[] x= new int[2];
这个一维数组有两个元素。
int[][] y=new int[2][3];
这个二维数组有六个元素,对吗? (2 x 3 = 6)
但是当我研究二维数组的实际制作方式时,
首先是一个名为y的引用类型变量,可以存储内存 二维数组的地址是在栈中生成的。
然后是一个具有两个元素的对象,可以存储一维 内存地址是在堆中创建的。
- 然后再制作2个一维数组,每个数组包含3个 可以存储int类型值的元素。和内存地址 这两个一维数组被分配给两个元素 是之前在对象内部制作的。
- 然后这个对象的内存地址被分配给y变量 已在堆栈中。
现在我遇到的问题是,一开始在该对象内只创建了两个元素,对吧? 这是否意味着二维数组有两个元素。 两个一维数组各有 3 个元素?
所有这些问题都让我烦恼,因为 y.length = 2 和 y[0].length =3
如果我错了,请纠正我,希望有人能帮助我。谢谢
最佳答案
是的,你说得完全正确。 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[][]
并且想知道它包含多少个整数,您需要循环遍历外部数组并对内部数组的长度求和。除非你保证所有内部数组都具有相同的长度。在这种情况下,您可以将外部数组的长度乘以任何内部数组的长度。
关于java - 如何计算多维数组的元素个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41659672/