Java 多维数组
在 Java 编程语言中,多维数组本质上是一个包含其他数组作为其元素的数组。这种数据结构为我们处理复杂数据组织提供了强大的工具,特别是在需要表格状或矩阵形式数据表示的场景中。
多维数组是数组的数组,多维数组的每个元素都是数组本身。所以学习多维数组之前,请先确保掌握 Java 数组的基本概念。
如何声明多维数组?
Java 提供了多种声明多维数组的语法形式,每种形式在语义上完全等价:
java
复制
// 三种等价的二维数组声明方式
int[][] matrix1; // 推荐使用,清晰表明类型
int matrix2[][]; // C语言风格,合法但不推荐
int[] matrix3[]; // 混合风格,容易造成混淆
// 三维数组声明
int[][][] cube;
在内存中,Java 的多维数组并非连续的内存块,而是通过引用实现的数组的数组。这意味着二维数组中的每个元素实际上是对另一个一维数组的引用。
如何初始化多维数组?
初始化多维数组可以分为两种形式:直接初始化、使用new
关键字。
1. 直接初始化,直接在声明时初始化多维数组:
java
复制
// 二维数组,规则的3x3矩阵
int[][] identityMatrix = {
{1, 0, 0},
{0, 1, 0},
{0, 0, 1}
};
// 不规则数组 - 每行有不同的列数
String[][] websiteData = {
{"Kaicz", "开创者", "教程网站", "个人网站"},
{"Google", "谷歌"},
{"Baidu", "百度", "搜索引擎"}
};
2. 动态初始化,使用new
关键字初始化多维数组:
java
复制
// 创建固定大小的二维数组
double[][] temperatureData = new double[12][31]; // 12个月,每月最多31天
// 创建不规则二维数组
int[][] pyramid = new int[5][]; // 5行,列数未定
for (int i = 0; i < pyramid.length; i++) {
pyramid[i] = new int[i + 1]; // 第i行有i+1个元素
}
// 三维数组初始化
boolean[][][] spatialData = new boolean[10][10][10]; // 10x10x10的立方体
访问和遍历多维数组
对于多维数组,访问元素需要通过从0
开始的多级索引值,使用类似数组名[索引1][索引2]...[索引N]
的语法即可读取特定位置的元素。如果访问任一维度上不存在的索引,都会抛出ArrayIndexOutOfBoundsException
异常。
java
复制
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 访问特定元素
System.out.println(matrix[0][0]); // 输出: 1
System.out.println(matrix[1][2]); // 输出: 6
// 获取数组维度信息
System.out.println("行数: " + matrix.length); // 输出: 3
System.out.println("第一行列数: " + matrix[0].length); // 输出: 3
2. 遍历数组
使用嵌套 for 循环结构,通过索引遍历数组的每一个成员:
java
复制
// 遍历二维数组
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
使用嵌套 for-each 循环(增强for循环),遍历数组的每一个成员:
java
复制
for (int[] row : matrix) {
for (int value : row) {
System.out.print(value + " ");
}
System.out.println();
}
评论区 0
发表评论
教程介绍
Java 通用高级编程语言,广泛应用在企业级应用开发、移动应用开发、大数据处理等领域。
34
章节
52
阅读
0
评论
反馈提交成功
感谢您的反馈,我们将尽快处理您的反馈