二维数组及遍历

二维数组及遍历
概念初始化方式详解遍历
我在前面的博文详细说过一维数组的概念初始化方式及遍历,今天这篇博文,可以看过前面博文的会很容易接受,前置博文,请直接点击链接跳转。
什么是二维数组,二维数组和一维数组一样,一维数组存放元素,二维数组存放一维数组,实质也是存储数据的一个容器对象。
二维数组在定义上和一维数组一样,动态初始化和静态初始化。
二维数组的动态初始化方式 数据类型[][]数组名称 = new 数据类型[一维数组的个数] [ 每一个一维数组的元素个数 ] 左边可以写成:
数据类型[][]数组名称数据类型 数组名称[][]数据类型[]数组名称[]
右边可以写成:
一维数组的个数:有几个值信息int [][]arr = new int [3][2] 代表的是每一个一维数组的个数:每个一维数组有几个元素信息
下面穿插个案例,更加深入的演示动态初始化:
public static void main(String [] args){
//定义int类型的二维数组
int[][] arrs= new int [3][2];
System.out.println(arrs);
}
这样我们就得到了一个二维数组,我们可以使用toString方法来做字符串输出:
Arrays.toString(arrs);
运行该程序,我们会发现得到三个地址信息,这个在一维数组的时候有讲解,具体看下图:
这个和我们当初看一维数组是一样的,绿色圈圈是一个一维数组,arrs指向堆里new出来的二维数组地址。所以输出的是地址信息。数组如果不赋值都是由初始值. 我们可以对二维数组里的每一个一维数组进行赋值:
//赋值
arrs[0][0]=1;
arrs[0][0]=2;
arrs[1][0]=3;
arrs[1][1]=4;
arrs[2][0]=5;
arrs[2][1]=6;
我们一样可以用toString方法进行输出,
[1,2]
[3,4]
[5,6]
给大家一张赋值后的图 二维数组的静态初始化方式
数据类型[][]数组名称 = new 数据类型[][]{{},{},{},{},{},{}};
简写:数据类型[][]数组名称 ={{},{},{},{},{},{}}; 因为二维数组和一维数组太多相同点了,这里同样一个案例:
//静态初始化
int[][] arrs={{1,2,3},{4,5},{6,7,8}};
这里的每一个{}都代表一个一维数组;
二维数组的遍历
什么是遍历二维数组? 所谓的遍历二维数组,实际是遍历一维数组,然后遍历每个一维数组的信息。
常用方法:forfor循环 方法解析:
//外循环遍历有几个一维数组
for(;;;){
//内循环遍历每一个一维数组的元素
for(;;;){
...
}
}
我们通过上面的方法解析,会有一种看前面说的打印图形的感觉。 下面走几个案例;
案例1:获取二维数组的元素个数。 主函数
public static void main(String [] args){
int count = getCount(b);
System.out.println("个数为:"+count);
}
功能函数
/*
* 分析:
* 1.返回类型 int
* 2.函数名称 getCount
* 3.未知内容参与 int[][]arrs
*/
public static int getCount(int[][]arrs){
//定义一个标识存放元素个数
int count = 0;
//外循环遍历有多少个一维数组
for(int i = 0; i //内循环遍历每一个一维数组的元素 for(int j = 0; j count++; //如果有元素,计数标识+1 } } return count; //返回count给调用方 } 案例2:西蒙公司的2018年度销售总额如图: 季度销售额(万元)第一季度22,66,44第二季度100,150,180第三季度300.240.180第四季度11,33,19 请帮西蒙财务统计下当年销售总额; 分析: 把以上的数据用二维数组来表示如何统计sum信息(遍历二维数组,相加求和)定义标识,存放sum信息 int sum=0;依次把遍历到的信息存放到sum中输出打印sum信息 public static void main(String []args){ //把以上的数据用二维数组来表示 int [][] nums={{22,66,44},{100,150,180},{300,240,180},{11,33,19}}; //遍历二维数组 int sum = 0; //外循环遍历有多少个一维数组 for(int i =0;i //内循环遍历每一个一维数组的元素 for(int j = 0;j sum+=nums[i][j]; //依次相加到sum中 } } System.out.println("西蒙公司年销售总额为:"+sum); } 上面我们也可以进行功能函数抽取,优化代码; public static int getSum(int [][] nums){ int sum = 0; //外循环遍历有多少个一维数组 for(int i =0;i //内循环遍历每一个一维数组的元素 for(int j = 0;j sum+=nums[i][j]; //依次相加到sum中 } } return sum; } simon:学习二维数组,要综合一维数组来,两种数组的遍历方式有少许不同。 纯手敲,觉得好的可以点个心哦,有任何建议,请直接留言。谢谢!