Java多维数组详解
什么是多维数组
Java 数组可以是一维或多维。一维数组就是最普通数组,是一列数据的线性序列,而多维数组相对而言就更加复杂。
多维数组就是数组中包含数组,类似于矩阵。
- 一个一维数组表示一行
- 多个一维数组表示多行
声明和初始化多维数组
多维数组的声明和初始化与一维数组非常类似,二维数组的初始化需要给出行数和列数,例如:
int a[][] = new int[3][4]
这个代码声明了一个有3行4列的整数型二维数组a。
也可以这样写:
int [][]arr = new int[2][]; //第二维可以list
arr[0] = new int[]{1,2,3};
arr[1] = new int[]{4,5};
这个代码首先定义了一个二维数组arr,arr有两行。接着在第一行的数组{1,2,3}和第二行的数组{4,5}中中添加数据。
数组元素访问
访问多维数组的语法与一维数组类似,例如:
a[0][0] = 1;
a[0][1] = 2;
多维数组的遍历
二维数组的遍历
二维数组可以通过嵌套循环遍历,例如:
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println();
}
其中,i 表示一维数组的下标,j 表示二维数组的下标。
三维数组的遍历
三维数组的遍历需要使用三层循环:
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
for (int k=0; k<arr[i][j].length; k++){
System.out.print(arr[i][j][k] + " ");
}
System.out.println();
}
System.out.println();
}
注意事项
- 多维数组的行数和列数可以不相同,每一行可以存放不同个数的元素。
- 声明多维数组时需要注意方括号的个数,多维数组相当于一个数组的数组。
示例
示例1
public static void main(String[] args) {
int[][] matrix = new int[3][3];
// 录入数据
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = i * 3 + j + 1;
}
}
// 打印数据
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();
}
}
输出结果:
1 2 3
4 5 6
7 8 9
这个例子展示了一个3行3列的二维数组,它包含1到9的整数。通过两层循环遍历数组,打印输出数组元素。
示例2
public static void main(String[] args) {
int[][][] matrix = new int[2][2][3];
// 录入数据
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
for(int k=0; k<matrix[i][j].length; k++){
matrix[i][j][k] = i+j+k;
}
}
}
// 打印数据
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
for(int k=0; k<matrix[i][j].length; k++){
System.out.print(matrix[i][j][k] + " ");
}
System.out.println();
}
System.out.println();
}
}
输出结果:
0 1 2
1 2 3
1 2 3
2 3 4
这个例子展示了一个2 * 2 * 3的三维数组,其中每个元素的值等于它在三维数组中的下标之和。通过三层循环遍历数组,打印输出数组元素。
总结
- 多维数组的声明和初始化与一维数组类似,但方括号的个数代表维数。
- 多维数组的访问需要使用多个下标。
- 多维数组的遍历需要使用多层循环,以二维数组为例需要使用两层循环,以三维数组为例需要使用三层循环。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java多维数组详解 - Python技术站