交错数组(Jagged Array)
是一个数组,其元素是数组,大小可能不同。 交错数组有时称为“数组的数组”。其元素是引用类型,初始化为 null。
必须先初始化交错数组的元素,然后才能使用它们。 每个元素本身都是数组。 还可以使用初始值设定项填充数组元素的值。 使用初始值设定项时,无需数组大小。
交错数组的声明和初始化方式如下:
// 声明一个交错数组
int[][] jaggedArray;
// 初始化交错数组
jaggedArray = new int[3][];
jaggedArray[0] = new int[2] { 1, 2 };
jaggedArray[1] = new int[3] { 3, 4, 5 };
jaggedArray[2] = new int[4] { 6, 7, , 9 };
在上面的例子中,我们声明了一个名为 jaggedArray 的交错数组,它包含了3个一维数组。然后,我们分别初始化了这3个一维数组,每个一维数组的长度分别为2、3和4。
交错数组的访问方式与普通的多维数组略有不同。我们可以使用两个索引来访问交错数组的元素,第一个索引用于访问一维数组,第二个索引用于访问一维数组中的元素。例如:
int value = jaggedArray[1][2]; // 访问第2个一维数组中的第3个元素,即值为5
交错数组和二维数组有什么不同:
C# 中的交错数组(Jagged Array)和二维数组(Multidimensional Array)是两种不同的数组类型。(Jagged:交错的,参差不齐的。Multidimensional:多维的,多面的。)
- 交错数组是由多个一维数组组成的数组,每个一维数组的长度可以不同。换句话说,交错数组是一个数组的数组。可以将其看作是一个表格,其中每一行都是一个独立的一维数组。
- 二维数组是一个由固定大小的行和列组成的数组,每个元素都可以通过行索引和列索引进行访问。二维数组可以看作是一个矩阵或者一个表格。
因此,交错数组和二维数组在概念上是不同的。交错数组可以具有不同长度的行,而二维数组的行和列都是固定的。
下面是一个交错数组的示例:
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 };
// 访问交错数组的元素
Console.WriteLine(jaggedArray[0][1]); // 输出 2
Console.WriteLine(jaggedArray[1][0]); // 输出 4
Console.WriteLine(jaggedArray[2][3]); // 输出 9
而下面是一个二维数组的示例:
int[,] multidimensionalArray = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
// 访问二维数组的元素
Console.WriteLine(multidimensionalArray[0, 1]); // 输出 2
Console.WriteLine(multidimensionalArray[1, 0]); // 输出 3
Console.WriteLine(multidimensionalArray[2, 1]); // 输出 6
总结来说,交错数组和二维数组在定义和访问方式上有所不同,交错数组是由多个一维数组组成的数组,而二维数组是一个固定大小的矩阵。