Java中的多维数组长度

如何找到具有非相等索引的多维数组的长度?

例如,我有int[][] pathList = new int[6][4]

如果没有对索引进行硬编码,我需要找到’6’和’4’。

我可以找到带有pathList.length的6,但是如何获得’4’?

这将为您提供索引i处的数组长度

 pathList[i].length 

值得注意的是,与C或C ++不同,Java中二维数组元素的长度不必相等。 例如,当pathList被实例化为等于new int[6][] ,它可以包含6个int []实例,每个实例可以是不同的长度。


因此,当您按照问题中显示的方式创建数组时,您也可以这样做

  pathList[0].length 

因为你知道他们都有相同的长度。 在其他情况下,您需要根据应用程序确定第二个维度的长度意味着什么 – 它可能是所有元素的最大长度,也可能是最小值。 在大多数情况下,您需要迭代所有元素并阅读它们的长度来做出决定:

 for(int i = 0; i < pathList.length; i++) { int currLen = pathList[i].length; } 

这是一个三维数组。

  int x[][][]=new int[5][8][10]; System.out.println(x.length+" "+x[1].length+" "+x[0][1].length); 

输出:5 8 10

Java具有“锯齿状”多维数组,这意味着二维数组中的每个“行”可以具有不同数量的组件。 如果您可以假设每行具有相同数量的组件,请使用:

 pathList[0].length; 

否则,您将不得不迭代:

 int maxRowLength = 0; for (int i = 0; i < pathList.length; i++) { if (maxRowLength < pathList[i].length) { maxRowLength = pathList[i].length; } } 

对于2Darrays: –

 int x[][] = new int[6][12]; System.out.println(x.length + " " + x[1].length); 

输出:6 12

在java中我们可以定义数组的数组,我们称之为多维数组。通过数组数组,我们的意思是我们数组的单个元素也是一个数组(在java中可以是多个长度)。要找到包含所有数组的多数组的长度相同大小的子arrays,我们可以使用:

 int[][]a=new int[3][3];//let a[][] be my array a.length will work. //a is an object of proxy class and length is its property. 

但是,如果你有不同大小的子数组,那么你必须迭代它。

 for(i=0;i 

三维arrays长度

 int[][][] a = new int[2][3][7]; int length=0; for(int[][] i:a){ for(int j[]:i){ length+=j.length; } } System.out.println(length);