上一课我们学习了几种常用的分支语句,本期来拓展一下数据类型。
学习目标
- 掌握数组的声明与访问
课题引入
若现在有一组数据,需要将它们保存到一起,并且给它们编号,如何实现呢?
我们可以像书柜一样,把一个个数据按顺序摆放好,并且贴上一个数字标签来标记位置。
在Java或其他高级语言中,我们可以使用一种新的数据类型:数组。
声明数组
语法
声明一个数组和变量一样,唯一不同的是需要加上一个或多个[]。
int[] array = new int[3];
像这样,我们就声明了一个一维数组,简而言之就是一个有序集合。
按照上面的格式可以概括出:数据类型[] 变量名 = new 数据类名[数组长度]
这个名为array的数组有固定的长度3,并且不能被更改。
一维数组
int[] array = new int[3];
二维数组
int[][] array2 = new int[3][4];
三维数组
int[][][] array3 = new int[3][3][3];
初始化数组
有时候我们需要直接给数组一组固定的数初始化,这时我们可以按照如下格式声明:
int[] array = new int[]{1,2,32};
像这样,我们声明了一个一维数组并且带有1、2、32这三个值。
因此我们可以按照上面new int[]的格式,在[]加上{},大括号内就是数组的元素,用逗号隔开每一个元素。
需要注意的是,如果用{}为数组指定一个初始值,就不能再给[]内传入一个数组长度,此时的长度由{}内的元素个数决定。
多维数组的初始化:
int[][] array = new int[][]{
{0,1,9}
,{1,5,1}
};
System.out.println(array[1][1]);
// 运行结果
5
如上我们声明了一个已经初始化的二维数组。
其数组大小等同于[2][3],第一个中括号内的数表示行,第二个中括号内的数表示列。
小结
按照一定的格式,可以继续声明5、6、7甚至更高维度的数组。
访问数组
现在我们知道了如何声明数组,接下来我们来试着访问一下它们。
先定义一个一维数组:
public static void main(String[] args) {
int[] array = new int[3];
}
然后我们用变量名[位置] = 值;
来将值赋给某个位置。
public static void main(String[] args) {
int[] array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
}
变量名[2]
得到的值就是第三个元素的值。现在我们试着获取某个元素:
System.out.println(array[1]);
输出的结果自然是2,那么多维数组又是怎样的呢?
public static void main(String[] args) {
int[][] array = new int[3][3];
array[0][0] = 1;
array[1][1] = 2;
array[2][0] = 3;
System.out.println(array[2][0]);
}
现在我们将代码改成如上形式,变成了二维数组。
增加了一个[],现在我们可以把它当做是平面直角坐标系里面的xy。
如第四行中array[1][1]表示的就是二维数组在(1,1)位置的值。
那么上述代码的结果就是3。
以此类推,我们可以把数组当做是一个直角坐标系,每一个坐标对应一个值。
课后练习
- 声明一个浮点型一维数组,并且初始化为 3.14、11.45、104.92
- 声明一个四维数组,并且对它写入、读取值。
- 声明一个3×3的二维数组,向内9个元素填满任意值,并且利用for循环,按照如下格式输出:“坐标为(x,y)对应的值为xxx” 将其中的x、y、xxx替换成对应的内容