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);