📜  Java中的锯齿数组Jagged array(1)

📅  最后修改于: 2023-12-03 15:02:03.536000             🧑  作者: Mango

Java中的锯齿数组(Jagged array)

在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 
总结

锯齿数组是一种由不同长度的数组组成的二维数组。在声明时只需要指定第一维的长度,在初始化时需要对每一个第二维数组进行初始化。访问元素时需要先判断该行是否为空,遍历数组时需要先循环遍历每一行,再循环遍历该行的第二维数组。