part8 二维数组
part8 二维数组
数据需要分组管理的时候用到二维数组:
二维数组的静态初始化:
- 格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,,元素2}{元素1,元素2}};
-
例:
int[][] arr = new int[][]{{11,22},{33,44}};
- 简便初始化方法:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}};
- int[][] arr = {{11,22}{33,44}};
直观写法:
// 每个一维数组写一行
int[][] arr3 = {
{1,2,3},
{4,5,6,7,8,9},
{4,5,6}
};
arr[第x-1行数组][第x-1行数组的y-1列] = arr[x][y]
常规的二维数组遍历情形:
int[][] arr2= {
{1,2,3,4,5},
{6,7,8,9,0},
{11,12,13,14,15}
};
for (int i = 0; i < arr2.length; i++) {
System.out.println()
// 外层循环遍历二维数组的行数,遍历次数为二维数组的长度
for (int j = 0; j < arr2[i].length; j++) {
// 内层循环遍历一维数组的列数,遍历次数为当前二维数组的长度
System.out.print(arr2[i][j]+“ ”);
}
}
二维数组的动态初始化:
格式:数据类型[][] 数组名 = new 数据类型[m][n]
- m表示这个二维数组可以存放多少个一维数组
- n表示每个一维数组能存放多少元素
例:int[][] arr = new int[2][3];
该数组可以存放2个一维数组,每个一维数组中可以存放3个int类型元素
二维数组的内存图:
数据类型[][] 数组名 = new 数据类型[m][n]
- 在栈内存中声明了一个二位数组变量,保存了二维数组位于堆内存的内存地址
- 在堆内存中开辟一个二维数组,和n个一维数组,二维数组里储存了一维数组的于堆内存的内存地址
练习:
某商城每个季度的营业额如下:单位(万元)
第一季度:22,66,44
第二季度:77,33,88
第三季度:25,45,65
第四季度:11,66,99
计算出每个季度的总营业额和全年总营业额
// 静态初始化数组并存入营业额
int[][] arr2= {
{22,66,44},
{77,33,88},
{25,45,65},
{11,66,99}
};
// 创建一个长度为5的一维数组用来存放四个季度的营业额和总营业额
int[] arr8 = new int[5];
// 写一个数组用来遍历数组内的内容
for (int i = 0; i < arr2.length; i++) {
for (int j = 0; j < arr2[i].length; j++) {
// 内层循环累加每一个季度的营业额
arr8[i] = arr2[i][j]+arr8[i];
}
// 外层循环把当前i+1季度的营业额加入总营业额
arr8[4] = arr8[i] + arr8[4];
}
// 输出营业额
for (int i:arr8){
System.out.println(i);
}