【JavaSE】Java基础语法(七):二维数组

95 阅读3分钟

文章目录

\

在这里插入图片描述

\

🪂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);
}

\

在这里插入图片描述