- 1.二维数组的定义
- 2.二维数组的动态初始化
- 2.二维数组的静态初始化
- 3.二维数组的遍历
- 4.二维数组的求和
二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器。
1.二维数组的定义格式1:数据类型[][] 变量名;(常用)
格式2:数据类型 变量名[][];
格式3:数据类型[] 变量名[];
2.二维数组的动态初始化格式:数据类型[][] 变量名 = new 数据类型[m][n];
- m 表示这个二维数组可以存放多少个一维数组
- n 表示每个一维数组可以存放多少个元素
// 该数组可以存放2个一维数组,每个一维数组中可以存放3个int类型元素 int[][] arr = new int[2][3];
示例:
public class Demo1Array {
public static void main(String[] args) {
int[][] arr = new int[3][3];
System.out.println(arr); // [[I@10f87f48
// 二维数组存储的是一维数组的内存地址
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[0][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][2]);
// 向二维数组中存储元素
arr[0][0] = 11;
arr[0][1] = 22;
arr[0][2] = 33;
arr[1][0] = 11;
arr[1][1] = 22;
arr[1][2] = 33;
arr[2][0] = 11;
arr[2][1] = 22;
arr[2][2] = 33;
// 从二维数组中取出元素并打印
System.out.println(arr[0][0]);
System.out.println(arr[0][1]);
System.out.println(arr[0][2]);
System.out.println(arr[1][0]);
System.out.println(arr[1][1]);
System.out.println(arr[1][2]);
System.out.println(arr[2][0]);
System.out.println(arr[2][1]);
System.out.println(arr[2][2]);
}
}
问:二维数组中存储的是一维数组,那能不能存入提前创建好的一维数组呢?
答:可以的。
public class Demo2Array {
public static void main(String[] args) {
int[] arr1 = {11,22,33};
int[] arr2 = {44,55,66};
int[] arr3 = {77,88,99,100};
int[][] arr = new int[3][3];
arr[2][3] = 100; // 报错,索引越界
arr[0] = arr1;
arr[1] = arr2;
arr[2] = arr3;
System.out.println(arr[1][2]); // 输出66
System.out.println(arr[2][3]); // 正确,输出100
}
}
2.二维数组的静态初始化
完整格式:
数据类型[][] 变量名 = new 数据类型[][]{ {元素1, 元素2...} , {元素1, 元素2...} ...};
简化格式:
数据类型[][] 变量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...};
示例:
public class Demo3Array {
public static void main(String[] args) {
int[] arr1 = {11,22,33};
int[] arr2 = {44,55,66};
int[][] arr = {{11,22,33}, {44,55,66}};
System.out.println(arr[0][2]); // 输出33
int[][] array = {arr1,arr2};
System.out.println(array[0][2]); // 输出33
}
}
3.二维数组的遍历
示例:已知一个二维数组 arr = {{11, 22, 33}, {33, 44, 55}},遍历该数组,取出所有元素并打印。
public class Test1 {
public static void main(String[] args) {
int[][] arr = {{11, 22, 33}, {33, 44, 55}};
// 1.遍历二维数组,取出里面每个一维数组
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]);
// 2.在遍历的过程中,对每个一维数组继续完成遍历,获取内部存储的每一个元素
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
}
4.二维数组的求和
示例:
public class Test2 {
public static void main(String[] args) {
// 1.定义求和变量,准备记录最终累加结果
int sum = 0;
// 2.使用二维数组来存储数据
int[][] arr = { {22,66,44} , {77,33,88} , {25,45,65} , {11,66,99}};
// 3.遍历二维数组,获取所有元素,累加求和
for (int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
}
// 4.输出最终结果
System.out.println(sum);
}
}



