前言
在前面的文章中,我们讲解了java的一维数组,接下来我们来学习一下二维数组吧!
-
什么是二维数组呢?
我们来举个简单的例子:前面我们学习了数组,这些数组称之为一维数组,我们可以把这些小的数组存放截进一个大的数组,这个大的数组就简称二维数组!
-
二维数组的应用场景
当我们需要把数据分组管理的时候,就需要用到二维数组啦!
-
二维数组的初始化
静态数组初始化: 其实是和一维数组的初始化一样哟
完整格式:数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2},{元素1,元素2}} 例:int[][] arr = new int[][]{{1,2},{1,2}}; 简写格式:数据类型[][] 数组名 = {{元素1,元素2},{元素1,元素2}}. 例:int[][] arr = {{1,2},{1,2}};我们来看一下静态二维数组的获取某个数组元素:
// 获取二维数组元素 int[][] arr1 = new int[][]{{1,2,3},{4,5,6,7}}; // 完整格式 int[][] arr2 ={{1,2,3},{4,5,6,7}}; // 简写格式 // arr1[0][0]表示获取第一个一维数组中的0索引的元素 System.out.println(arr1[0][0]); // 打印出 1 System.out.println(arr1[1][1]); // 打印出 5我们再来看一下静态二维数组的遍历数组元素:
// 遍历二维数组的元素 // 外循环:遍历二维数组,得到里面的每一个一维数组 for (int i = 0; i < arr2.length; i++) { // 内循环:遍历一维数组,得到里面的每一个元素 // i表示二维数组中的每一个元素 for (int j = 0; j < arr2[i].length; j++) { // j表示一维数组中的每一个元素 System.out.print(arr2[i][j] + " "); } System.out.println(); }关于静态二维数组我们就学习完毕啦,我们接着来学习一下二维数组的动态初始化吧!
动态数组初始化:
完整格式:数据类型[][] 数组名 = new 数据类型[m][n] m:表示这个二维数组可以存放多少个一维数组 n:表示这个一维数组里面可以存放多少个元素 例:int[][] arr = new int[2][3]; 表示这个数组可存放2个一维数组,每个一维数组可以存放3个int类型的元素我们来看一下动态二维数组的获取某个数组元素:
// 给二维数组的第一个数组里面第一个元素赋值10 arr3[0][0] = 10;我们再来看一下动态二维数组的遍历数组元素:
// 外循环:遍历二维数组,得到里面的每一个一维数组 for (int i = 0; i < arr3.length; i++) { // 内循环:遍历一维数组,得到里面的每一个元素 for (int j = 0; j < arr3[i].length; j++) { System.out.print(arr3[i][j] + " "); } System.out.println(); } -
二维数组案例
下面我们来看一个案例吧:
需求:某商场每个季度的营业额如下:单位(万元)。
第一季度:22,66,44。
第二季度:23,85,60。
第三季度:29,70,68。
第四季度:66,50,80。
要求:计算出每个季度的营业额和全年营业额
第一步:定义一个二维数组
// 定义一个二维数组
int[][] arr1 = {
{22,66,44},
{23,85,60},
{29,70,68},
{66,50,80},
};
第二步:定义一个方法求每个季度的营业额
// 定义一个方法,计算每一个季度的营业额
public static int sumArr(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
第三步:遍历求出每个季度的营业额
for (int i = 0; i < arr1.length; i++) {
// i二维数组中的每一个索引
// arr1[i] 元素(一维数组)
int[] quarterArr = arr1[i];
int sum = sumArr(quarterArr);
System.out.println("第" + (i + 1) + "个季度的营业额为:" + sum);
}
第四步:求全年营业额
// 定义一个变量用来存放全年营业额
int yearSum = 0;
yearSum += sum;
我们运行看一下吧:
我们来看下完整代码:
public static void main(String[] args) {
/*需求:某商场每个季度的营业额如下:单位(万元)。
第一季度:22,66,44。
第二季度:23,85,60。
第三季度:29,70,68。
第四季度:66,50,80。
要求:计算出每个季度的营业额和全年营业额*/
// 定义一个二维数组
int[][] arr1 = {
{22,66,44},
{23,85,60},
{29,70,68},
{66,50,80},
};
// 遍历二维数组,得到每一个一维数组并求和
// 定义一个变量用来存放全年营业额
int yearSum = 0;
for (int i = 0; i < arr1.length; i++) {
// i二维数组中的每一个索引
// arr1[i] 元素(一维数组)
int[] quarterArr = arr1[i];
int sum = sumArr(quarterArr);
System.out.println("第" + (i + 1) + "个季度的营业额为:" + sum);
yearSum += sum;
}
System.out.println("全年营业额为:" + yearSum);
}
// 定义一个方法,计算每一个季度的营业额
public static int sumArr(int[] arr){
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
好啦,以上就是二维数组的知识点,怎么样,是不是和一维数组一样呢。有什么不懂的可以在评论区评论哟!
==最后非常感谢您的阅读,也希望能得到您的反馈 ==