一:概述
前面二维数组2中说了二维数组的内存图和遍历,在这里说一下二维数组的例子。
二:具体说明
<1>案例案例1:二维数组元素的打乱
二维数组和一维数组的打乱相似,都是通过交换去实现的。不同的是交换的内容不同而已。
同样需要用到随机数的使用。
假设有一个二维数组int[][] arr = {{1, 5, 7}, {6, 8, 9}, {11, 23, 34}, {56, 3, 2}, {4, 6, 87}};需要对其进行打乱
具体步骤:
- <1>定义这个数组
- <2>创建随机数对象
- <3>遍历二维数组,在里面通过随机数,进行元素的打乱,本质上二维数组的打乱其实就是其内部索引的打乱。
具体代码如下:
// 定义一个二维数组
int[][] arr = {{1, 5, 7}, {6, 8, 9}, {11, 23, 34}, {56, 3, 2}, {4, 6, 87}};
// 创建随机数对象
Random r = new Random();
// 遍历二维数组,进行元素打乱
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
// arr[i][j]
int x = r.nextInt(arr.length);
int y = r.nextInt(arr[x].length);
// 元素交换
int temp = arr[i][j];
arr[i][j] = arr[x][y];
arr[x][y] = temp;
}
}
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>案例2:对公司n个销售小组的总销售额和整个公司的销售额的计算
在这里假设销售小组的数量为5个,且每个小组的成员数量不同。
具体实现步骤:
<1>使用动态初始化,定义一个长度为5的二维数组
<2>将5个小组的销售额存入数组中
<3>循环遍历数组,计算总销售额,在这个实现之前,需要定义两个变量用于计算小组的总销售额和整个公司的销售额
具体代码如下所示:
// 1. 定义一个长度为5的二维数组
int[][] saleRooms = new int[5][];
// 2.将5个小组的销售额存入二维数组中
saleRooms[0] = new int[] {11, 23, 9, 12, 24, 10};
saleRooms[1] = new int[] {12, 11, 13, 14, 10, 8, 9, 4};
saleRooms[2] = new int[] {8, 15, 9, 10, 8, 14};
saleRooms[3] = new int[] {15, 16, 8, 6, 7};
saleRooms[4] = new int[] {14, 19, 12};
// 3.定义一个变量用于记录公司的总销售额
int sum = 0;
// 4.定义一个变量计算小组的总销售额
int groupSum = 0;
// 5.遍历二维数组进行计算
for(int i = 0; i < saleRooms.length; i++) { // 遍历数组元素
for(int j = 0; j < saleRooms[i].length; j++) { // 遍历小组中每个人的销售额
groupSum =+ saleRooms[i][j];
}
sum =+ groupSum;
System.out.println("第" + (i + 1) + "小组的销售额为:" +groupSum + "万元");
}
System.out.println("总销售额为:"+sum + "万元");
}