[英]Multidimensional Arrays lengths in 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;
}
这是一个 3 维数组。
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;
}
}
对于二维数组:-
int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);
输出:6 12
在java中,我们可以定义数组数组,我们称之为多维数组。数组数组的意思是数组的单个元素又是一个数组(在java中可以是多个长度)。找到具有所有长度的多数组的长度相同大小的子数组,我们可以使用:
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<a.length;i++)
int cur_size=a[i].length;
pathList.length
为您提供行数。 这意味着它将为int[6][4]
输出 6 pathList.length[i]
为您提供第 i 行中的列数。 由于int[6][4]
可以看作是一个矩形,所以它总是输出 4。
在 Java 中,我们不能像使用一维数组那样使用 Length 字段。 所以简单的写几行代码就解决了这个问题。 首先,您需要知道多维数组中 Length 字段的输出是行数。我的意思是当您有以下数组时
int[][] 数字 = {{1,2,3,4,2,6},{4,5,6,7}};
System.out.println(numbers.length) 的结果; 是 2,因为你有 2 行。 所以,你应该用它来解决这个问题。 例子:
public class Main {
public static void main(String[] args) {
//Array definition
int[][] numbers = {{1,2,3,4,2,6},{4,5,6,7}};
//Number of array's elements
int result = 0;
//calculate via loop
for(int i=0; i< numbers.length; i++){
result += numbers[i].length;
}
//output
System.out.println(result);
}
}
您可以使用 pathlist[i].length 找到 '4'
如果我是新手,如果我错了,请纠正我,这将帮助我更好地理解 Java。 下面的代码可以帮助你理解。
public class Main {
public static void main(String[] args) {
int num[][] = new int[1][3];
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
num[i][j] = 10;
System.out.println("num [" + i + "] [" + j + "] = " + num[i][j]);
}
}
}
}
3-D 数组长度
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.