小白学Java 第17课:数组

【相关链接】

上一篇:小白学Java 第16课:字符串

下一篇:小白学Java 第18课:多维数组

总纲:返回列表

 

【前言】

在前面我们学习了字符串,他可以用来表示一句话,一个词语,或者一个单词,比如我们用7个String类型的变量可以分别表示出星期一到星期日:

String mon = "星期一";
String tue = "星期二";
String wed = "星期三";
String thur = "星期四";
String fri = "星期五";
String sat = "星期六";
String sun = "星期日";

但在我们实际生活中,这7个我们统称为一周,他们应该是一个整体,应该可以用一个叫法来代替。

又比如:小张同学的兴趣爱好有唱歌、跳舞、书法、游泳四项,那么在程序中我们,我们该如何定义小张的爱好呢?

还比如:10以内的质数有 2、3、5、7 四项,我们又该如何定义一个东西来表示这10以内的质素呢?

那么,接下来就要引出我们的数组概念了。

【1】数组的概念

什么是数组?就是将类型一样,个数确定的成员集合在一起,成为一个整体。

比如上面:我们将所有星期集合在一起成为一周,将小张的每个兴趣爱好集合在一起,将10以内的质数集合在一起。

简而言之:就是一样类型的东西,放在一起,且个数确定。

【2】数组的定义

如何定义一个数组呢?其实很简单!我们按照前言中的逐个来实现看看。

首先,我们先来看看一周用数组可以如何表示?

String[] week = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七"};

那么如何解读这一行代码呢?

首先第一个 String,他表示单个成员的类型;

然后紧接着是一对中括号[],这个中括号就是数组的标识符;

然后空格,接着写我们集合名字,这里我们取名week;

接着等号=后就是赋值的具体成员数据了,他们首先用一对大括号包起来,然后大括号里面逐个写上数组的每个成员,每个成员之间用逗号区别(最后一个成员后不写),

最后别忘了,在大括号尾巴上加上代码结束的分号标志。

那么这样我们一个星期的数组定义就完成了;

下面是定义图解说明:

同理,我们可以得到小张的爱好,10以内的质素的数组表示方法了,如下:

// 一周的星期表示
String[] week = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七" };
// 校长的爱好
String[] hobbies = { "唱歌", "跳舞", "书法", "游泳" };
// 10以内的质素集合
int[] nums = { 2, 3, 5, 7 };

【3】数组长度

一个数组,肯定是有长度的,也就是这个数组的容量是多少?那么该如何获取呢?我们可以调用数组的 .length 属性获取到数组的长度;

比如:week数组的长度就是 week.length,其他数组同理;

【注意】这里的 .length 是调用的变量属性,并不是调用的方法,方法是还要在后面带小括号的哈。

【4】数组下标

什么是数组的下标呢?就是每个数组都有自己的长度,比如上面的week数组,它的长度为7,那么它的数组下标就有0、1、2、3、4、5、6;

又比如:小张的爱好hobbies数组,它的长度为4,那么它的数组下标就有0、1、2、3;

同理,nums 数组的下标有 0、1、2、3;

善于发现的同学可能就发现了,下标就相当于我们数这个数组的长度,只不过是从0开始的。是的,就是这么简单!就是这么 easy!

至于为什么不从1开始数呢?毕竟Java这个东西是老外开发的东西,这或许是出于计算机的组成原理考虑,又或许就是他们从0开始数数的习惯吧,这里我们记住就行。

(4.1)下标有什么作用?

下标的作用其实就相当于一本书中的页码,相当于起到一个定位的作用,比如《小白学Java》一书中的第258页内容,讲的是“小白如何成为Java大牛”的情节,如果别人让你快速找到该页的内容,你从页码去找,肯定比光从内容比对的找要容易快速得多。

同理,通过数组的下标我们就可以得到具体的成员。

那么我们如何结合下标和数组中表示成员呢?他只要在数组变量名后面加个中括号,并在中括号里面写上下标数字即可。

比如:我们要得到week数组的第1个成员,它的写法就是 week[0],第2个成员就是 week[1],以此类推;

// 一周的星期表示
String[] week = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七" };
// 打印输出每个下标对应的成员
System.out.println("week[0] 是 : " + week[0]);
System.out.println("week[1] 是 : " + week[1]);
System.out.println("week[2] 是 : " + week[2]);
System.out.println("week[3] 是 : " + week[3]);
System.out.println("week[4] 是 : " + week[4]);
System.out.println("week[5] 是 : " + week[5]);
System.out.println("week[6] 是 : " + week[6]);

那么输出的结果就是:

(4.2)下标越界

所谓下标越界,就是下标超过了数组的最大下标(数组长度 - 1)数,这时候运行代码就会报错。

比如week星期的下标最大为7,但我们打印要星期的第8个下标,这时程序就会报出红色错误日志:java.lang.ArrayIndexOutOfBoundsException (数组下标越界)

这时一种不被允许的机制,所以以后我们在取得成员变量的时候,一定要先判断取的下标是否合理,不然程序就要出错(也就是出bug哦)

【5】数组遍历

数组遍历就是将数组中的成员全部进行操作,比如我们将week数组的所有成员全部进行打印输出。

通常,我们采用前面学的 for 循环进行遍历:

String[] week = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期七" };
for (int i = 0; i < week.length; i++) {
	System.out.println(week[i]);
}

输出结果为:

这里数组下标 i 是每次循环的数,由于 i 从0开始,且小于数组的长度(也就是等于数组的长度 - 1),所以恰好可以通过 for 循环遍历整个数组。

 

【相关链接】

上一篇:小白学Java 第16课:字符串

下一篇:小白学Java 第18课:多维数组

总纲:返回列表

 

 

 

 

 

 

 

 

 

 

 

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页