多维度数组
多维度数组
多维度数组(Multidimensional Arrays)在Java中可以视为数组的数组,最常见的是二维数组,但Java也支持更多维度的数组。多维度数组在内存中并不是连续存储的,它们是按行或按列连续的,这取决于数组的布局方式。
声明多维度数组:
javaint[][] twoDimArray; // 声明一个二维数组
int[][][] threeDimArray; // 声明一个三维数组
初始化多维度数组:
javatwoDimArray = new int[3][4]; // 初始化一个3行4列的二维数组
threeDimArray = new int[2][3][2]; // 初始化一个2个三行两列的三维数组
为多维度数组赋值:
java// 为二维数组赋值
for (int i = 0; i < twoDimArray.length; i++) {
for (int j = 0; j < twoDimArray[i].length; j++) {
twoDimArray[i][j] = (i * 4) + j; // 示例值,可以是任何计算或值
}
}
// 为三维数组赋值
for (int i = 0; i < threeDimArray.length; i++) {
for (int j = 0; j < threeDimArray[i].length; j++) {
for (int k = 0; k < threeDimArray[i][j].length; k++) {
threeDimArray[i][j][k] = (i * 6) + (j * 2) + k;
}
}
}
遍历多维度数组:
java// 遍历二维数组
for (int i = 0; i < twoDimArray.length; i++) {
for (int j = 0; j < twoDimArray[i].length; j++) {
System.out.print(twoDimArray[i][j] + " ");
}
System.out.println();
}
// 遍历三维数组
for (int i = 0; i < threeDimArray.length; i++) {
for (int j = 0; j < threeDimArray[i].length; j++) {
for (int k = 0; k < threeDimArray[i][j].length; k++) {
System.out.print(threeDimArray[i][j][k] + " ");
}
System.out.println();
}
}
数组的数组:
多维度数组可以视为数组的数组,例如,二维数组可以看作是许多数组(行)的集合,每个数组(行)又包含了多个元素(列)。
矩形和不规则数组:
- 矩形数组:所有子数组都具有相同的长度。这是最常见的多维数组形式。
- 不规则数组:子数组可以具有不同的长度,这种数组在Java中可以通过使用数组的数组来实现,但需要手动管理每个子数组的大小。
示例:
java复制int[][] irregularArray = new int[3][];
irregularArray[0] = new int[2];
irregularArray[1] = new int[5];
irregularArray[2] = new int[3];
// 为不规则数组赋值
for (int i = 0; i < irregularArray.length; i++) {
for (int j = 0; j < irregularArray[i].length; j++) {
irregularArray[i][j] = (i * 10) + j;
}
}
多维度数组在处理矩阵、图像数据、复杂的游戏地图等场景时非常有用。然而,它们的使用比一维数组更为复杂,需要更多的注意力来管理各个维度的边界和大小。