目录

一、 二维数组介绍

二、 二维数组的初始化

1. 二维数组的静态初始化

2. 二维数组的动态初始化

三、二维数组的内存图

 四、练习


一、 二维数组介绍

  • 什么是二维数组:数组中存数组
  • 二维数组的应用场景:当我们需要把数据分组管理的时候,就要用到二维数组

二、 二维数组的初始化

1. 二维数组的静态初始化

  • 格式:数据类型[ ] [ ] 数组名 = new 数据类型[ ] [ ]{ { 元素1,元素2}, { 元素1,元素2} };
  • 范例:int[ ] [ ] arr = new int[ ] [ ] { {11,22},{33,44} };
  • 简化格式: 数据类型[ ] [ ] 数组名 = { { 元素1,元素2}, { 元素1,元素2} };
  • 范例:int[ ] [ ] arr = { {11,22},{33,44} };
public static void main(String[] args) {
	//1.二维数组的静态初始化
	int[][] arr = new int[][]{{1,2,3},{4,5,6,7,8}};
	int[][] arr2 = {{1,2,3},{4,5,6,7,8}};
	//以后建议这样定义,把每一个一位数组单独写成一行
	//注意:每一个一位数组其实是二维数组中的元素
	//所以每一个一维数组之间用逗号隔开,最后一个不需要加逗号
	int[][] arr3 = {
			{1,2,3},{4,5,6,7,8}
		};
	
	//2.获取元素
	//arr[i][j]:二维数组
	//i:二维数组的索引,获取出来的是里面的一维数组
	//j:表示一维数组中的索引
	//arr[0]:二维数组中的第一个一维数组
	//arr[0][0]:获取第一个一维数组索引为0的元素
	//System.out.println(arr[0][0]); //1
	
	//3.二维数组遍历
	//外循环:遍历二维数组,得到里面的每一个一位数组
	for (int i = 0; i < arr.length; i++) {
		//内循环:遍历一维数组,得到里面的每一个元素
		for (int j = 0; j < arr[i].length; j++) {
			System.out.print(arr[i][j]+" ");
		}
		System.out.println();
		
	}
}

2. 二维数组的动态初始化

  • 格式:数据类型[ ] [ ] 数据名 = new 数据类型[ m ] [ n ]
  • m表示这个二维数组可以存放多少个一位数组
  • n表示每一个一维数组可以存放多少个元素
  • 范例:int[ ] [ ] arr = new int[ 2] [ 3];
public static void main(String[] args) {
		// 利用动态初始化创建二维数字
		int[][] arr = new int[3][5];
		// 3:表示这个二维数组长度为3,可以存放3个一位数组
		// 5:表示每一个一维数组的长度都是5,
		// 可以存放5个int类型的元素

		// 定义二维数组赋值第一个元素
		arr[0][0] = 10;

		// 二维数组的遍历
		// 外循环:遍历二维数组获取里面每一个一维数组
		// 内循环:遍历一维数组中每一个元素
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}

三、二维数组的内存图

public static void main(String[] args) { int[][] arr = new int[2][3]; }

 内存图表示:

java 二维数列 java二维数组举例_java 二维数列

 四、练习

某商城每个季度的营业额如下:单位(万元)

第一季度:22,66,44
第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

要求计算出每个季度的总营业额和全年的总营业额

public static void main(String[] args) {

		// 1.创建二维数组并存储数据
		int[][] yearArrArr = { { 22, 66, 44 }, { 77, 33, 88 }, { 25, 45, 65 }, { 11, 66, 99 } };

		// 表示全年的营业额
		int yearSum = 0;
		// 2.遍历二维数组,得到每一个一维数组的和
		for (int i = 0; i < yearArrArr.length; i++) {
			// i 二维数组中每一个索引
			// yearArrArr[i] 元素(一维数组)
			int[] quarterArr = yearArrArr[i];
			int sum = getSum(quarterArr);
			System.out.println("第" + (i + 1) + "个季度的总营业额为:" + sum);
			yearSum = yearSum + sum;
		}
		System.out.println("全年总营业额为:" + yearSum);
	}

	// 定义一个方法,计算每一个季度的营业额
	public static int getSum(int[] arr) {
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			sum = sum + arr[i];
		}
		return sum;
	}

运行结果:

java 二维数列 java二维数组举例_二维数组_02