📅  最后修改于: 2023-12-03 15:02:03.536000             🧑  作者: Mango
在Java中,锯齿数组(Jagged array)是一种由不同长度的数组组成的二维数组。它通常被用于表示或操作分层数据结构。
声明一个锯齿数组的方式类似于声明一个二维数组:
dataType[][] arrayName = new dataType[row][];
其中,dataType
代表数据类型,row
代表行数,arrayName
是数组名称。这里的[]
代表数组类型。需要注意的是,第二维数组的长度在声明时可以不指定,即arrayName[row][]
,这是因为在Java中,声明数组时只需指定第一维的长度。
对于声明后的锯齿数组,需要通过循环来对每一行的第二维数组进行初始化。下面是一个例子:
int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[]{1,2,3};
jaggedArray[1] = new int[]{4,5};
jaggedArray[2] = new int[]{6,7,8,9};
这个锯齿数组由三行组成,第一行有三个元素,第二行有两个元素,第三行有四个元素。
与二维数组类似,通过两个下标来访问锯齿数组中的元素。第一个下标代表第几行,第二个下标代表第几列。需要注意的是,在访问某一行的第二维数组时,需要先判断该行是否为空,否则会抛出空指针异常。
下面是访问锯齿数组的一个例子:
int[][] jaggedArray = new int[][]{{1,2,3},{4,5},{6,7,8,9}};
System.out.println(jaggedArray[0][0]); // 输出1
System.out.println(jaggedArray[1][1]); // 输出5
System.out.println(jaggedArray[2][3]); // 输出9
遍历锯齿数组的方式与二维数组略有不同。需要先循环遍历每一行,然后再循环遍历该行的第二维数组。
下面是遍历锯齿数组的一个例子:
int[][] jaggedArray = new int[][]{{1,2,3},{4,5},{6,7,8,9}};
for(int i = 0; i < jaggedArray.length; i++) {
for(int j = 0; j < jaggedArray[i].length; j++) {
System.out.print(jaggedArray[i][j] + " ");
}
System.out.println();
}
输出结果:
1 2 3
4 5
6 7 8 9
锯齿数组是一种由不同长度的数组组成的二维数组。在声明时只需要指定第一维的长度,在初始化时需要对每一个第二维数组进行初始化。访问元素时需要先判断该行是否为空,遍历数组时需要先循环遍历每一行,再循环遍历该行的第二维数组。