前面学了一维数组,先来复习一下,一维数组的定义有两种方式,int arr[]和int [] arr,初始化也有两种方式,分为动态初始化和静态初始化,动态初始化:int []arr = new int [3],,这表示创建一个数据类型为int的长度为3的数组,它是由创建者给出长度,系统给出默认赋值,如果后面没有给数组里面赋值的话,系统会给它默认值0,这是int数据类型数组的默认值,静态初始化,int [] arr = {1,2,3,},这句语句和刚刚一样,也表示创建一个数据类型为int长度为3的数组,但有一点不同,它是由创建者给定初值,系统确定长度的。
上面的数组可以这样理解
下面来介绍二维数组,一维数组里面放的是定义的数据类型的数据,而二维数组放的是一维数组,如图
这个名叫arr的二维数组里面放了三个一维数组,名字分别为arr[0]、arr[1]、arr[2]。
二维数组的定义和初始化与一维数组的定义和初始化基本一致,定义也有两种方式:
第一种:
数据类型 变量名 [][];
第二种:
数据类型 [][] 变量名;
初始化也分动态初始化和静态初始化:
动态初始化:
int [][] arr = new int[3][3]; 这条语句表示这个二维数组可以存放三个一维数组,每个一维数组可以存放3个int类型的元素。
静态初始化:
, int [][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 这条语句表示这个二维数组里存放了3个存放着3个int类型的元素的一维数组。
介绍了定义和初始化,现在来看两个例题:
eg1:已知一个二维数组 arr = {{11,22,33},{44,55,66}},遍历该数组,取出所有元素并打印。
分析:从前面的介绍我们知道了,这是一个存放着两个存放着三个int类型的元素的一维数组的二维数组,那么我们如何取出里面的元素呢,很简单,先把一维数组一个一个取出来,再把元素一个一个取出来就可以了啊,代码如下:
public class Test {
public static void main(String[] args) {
//把题目里面的数组抄过来,静态初始化方式
int [][] arr = {{11,22,33},{44,55,66}};
//逐个取出一维数组
for (int i = 0; i < arr.length; i++) {
//逐个取出当前一维数组里面的元素
for (int j = 0; j < arr[i].length; j++) {
//打印当前元素,注意这里不换行,加个制表符,好看的同时便于观察和查找元素
System.out.print(arr[i][j]+"\t");
}
//打印完一个一维数组里面所有的元素后,换行,一行显示一个一维数组里面的元素
System.out.println();
}
}
}
运行效果如下:
eg2:某公司季度和月份统计的数据如下:单位(万元)
第—季度:22,66,44
第二季度:77,33,88 第三季度:25,45,65 第四季度:11,66,99
用二维数组将如上数据存储起来,输出求和结果和每个月份统计的数据。
分析:和上面的例子一样,数据已给出,使用静态初始化方式初始化,之后和上一题一样,打印出来,但要多定义一个变量sum,用于求和,代码如下:
public class Test {
public static void main(String[] args) {
//同理,静态初始化数组
int salesVolume[][] = {{22, 66, 44}, {77, 33, 88}, {25, 45, 65}, {11, 66, 99}};
//定义存储求和结果的变量sum
int sum = 0;
//逐个取出一维数组
for (int i = 0; i < salesVolume.length; i++) {
//逐个取出当前一维数组里面的元素
for (int j = 0; j < salesVolume[i].length; j++) {
//打印输出当前元素
System.out.print(salesVolume[i][j] + "\t");
//把当前元素加到sum里面
sum += salesVolume[i][j];
}
//换行
System.out.println();
}
//输出求和结果
System.out.println("该公司的年统计数据求和结果为" + sum);
}
}
运行效果如下:
今天就讲到这了。