Java 如何计算多维数组中的元素数?
自从我学习二维数组以来,我就一直有这个问题。。。我希望有人能为我澄清一些事情 以下是我所知道的Java 如何计算多维数组中的元素数?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,自从我学习二维数组以来,我就一直有这个问题。。。我希望有人能为我澄清一些事情 以下是我所知道的 int[]x=新的int[2] 这个一维数组有两个元素 int[]y=新的int[2][3] 这个二维数组有六个元素,对吗?(2 x 3=6) 但当我研究二维数组的实际制作方式时 首先是一个名为y的引用类型变量,它可以存储内存 二维数组的地址在堆栈中生成 然后是一个具有两个元素的对象,可以存储一维数据 内存地址在堆中生成 然后再制作2个一维阵列,每个阵列由3个 可以存储int类型值的元素。以及 这两个
int[]x=新的int[2]
这个一维数组有两个元素 int[]y=新的int[2][3]
这个二维数组有六个元素,对吗?(2 x 3=6) 但当我研究二维数组的实际制作方式时
如果我错了,请纠正我,希望有人能帮助我。谢谢是的,你完全正确。Java本身没有二维数组。它所拥有的只是包含数组的数组,以及创建它们的语法糖(
newint[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中,多维数组实际上是数组的数组。例如,一个名为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];
虽然在这种情况下单独分配第二维度数组没有好处,但可能有一些好处。与手动分配维度一样,不需要为每个维度分配相同数量的元素。如前所述,由于多维数组实际上是数组的数组,因此每个数组的长度由您控制