🪂1. 二维数组概述
概述 : 二维数组也是一种容器,不同于一维数组,该容器存储的都是一维数组容器
🪂2. 二维数组动态初始化
动态初始化格式:
数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组,可以存放多少个一维数组 n表示每一个一维数组,可以存放多少个元素
public class Demo1Array { public static void main(String[] args) { // 数据类型[][] 变量名 = new 数据类型[m][n]; int[][] arr = new int[3][3]; /* [[I@10f87f48 @ : 分隔符 10f87f48 : 十六进制内存地址 I : 数组中存储的数据类型 [[ : 几个中括号就代表的是几维数组 */ System.out.println(arr); /* 二维数组存储一维数组的时候, 存储的是一维数组的内存地址 */ 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; } }
🪂3. 二维数组访问元素的细节问题
问题 : 二维数组中存储的是一维数组, 那能不能存入 [提前创建好的一维数组] 呢 ?
答 : 可以的
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]); System.out.println(arr[2][3]); }
🪂4. 二维数组静态初始化
完整格式 : 数据类型[][] 变量名 = new 数据类型[][]{ {元素1, 元素2…} , {元素1, 元素2…}
简化格式 : 数据类型[][] 变量名 = { {元素1, 元素2…} , {元素1, 元素2…} …};
代码实现 :
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]); int[][] array = {arr1,arr2}; System.out.println(array[0][2]); }
🪂5. 二维数组遍历
需求 :
已知一个二维数组 arr = {{11, 22, 33}, {33, 44, 55}};
遍历该数组,取出所有元素并打印
代码实现 :
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. 在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素 //int[] temp = arr[i]; for (int j = 0; j < arr[i].length; j++) { System.out.println(arr[i][j]); } } }
🪂6. 二维数组求和
需求 :
某公司季度和月份统计的数据如下:单位(万元)
🌠第一季度:22,66,44
🌠第二季度:77,33,88
🌠第三季度:25,45,65
🌠第四季度:11,66,99
代码实现 :
public static void main(String[] args) { // 1. 定义求和变量,准备记录最终累加结果 int sum = 0; // 2. 使用二维数组来存储数据,每个季度是一个一维数组,再将4个一维数组装起来 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); }