20 数组之数组的初始化
在上一章,我们探讨了如何定义数组。定义数组只是第一步,接下来我们将学习如何对数组进行初始化,特别是“数组的数组”——即二维数组的初始化。通过阅读本节,您将能够掌握如何创建和初始化二维数组,从而更好地处理复杂的数据结构。
什么是二维数组?
在 Java 中,二维数组可以被看作是一个数组的数组。它是一个表格,每个元素都是一个一维数组。我们可以将二维数组想象成一张表格,其中行和列的交叉点就是元素。
创建和初始化二维数组
二维数组的声明与一维数组类似,但它有两个维度。一个简单的二维数组的声明方式如下:
int[][] array;
然而,这只是在内存中声明了一个二维数组的引用,并没有分配内存来存储数组元素。我们可以通过以下几种方法对二维数组进行初始化。
1. 静态初始化
静态初始化是在声明数组的同时赋值。这种方法适合于知道数组元素个数和具体值的情况下。
int[][] array = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
在上面的代码中,我们创建了一个 3×3 的整数二维数组,每个元素都有了初始值。
2. 动态初始化
动态初始化允许在运行时指定数组的大小,而具体的元素值可以在后续的代码中赋值。
int[][] array = new int[3][3];
接下来,我们可以使用嵌套的 for
循环给数组中的每个元素赋值:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
array[i][j] = i * 3 + j + 1; // 按行赋值
}
}
3. 非规则数组
值得注意的是,Java 允许创建“非规则”的二维数组,也称为“锯齿状数组”。即每一行可以有不同数量的列。
int[][] array = new int[3][];
array[0] = new int[2]; // 第一行 2 列
array[1] = new int[3]; // 第二行 3 列
array[2] = new int[1]; // 第三行 1 列
// 赋值
array[0][0] = 1;
array[0][1] = 2;
array[1][0] = 3;
array[1][1] = 4;
array[1][2] = 5;
array[2][0] = 6;
访问二维数组元素
初始化完成后,您可以通过行列索引访问和修改数组元素:
// 访问元素
int value = array[1][2]; // 访问第二行第三列的元素,即值 5
// 修改元素
array[2][0] = 10; // 将第三行第一列的值更改为 10
总结
在本章节中,我们详细讨论了二维数组的初始化方法,包括静态初始化、动态初始化和非规则数组的创建。了解这些基本概念之后,您就可以开始在 Java 中处理更复杂的数据结构,为下一章的内容做好准备。
在下一章中,我们将深入探讨二维数组的常见操作,包括遍历、查找和其他有用的操作。希望您能继续跟随我们的教程,进一步丰富您的 Java 知识!