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

上一个课时,我们了解了数组,但上节课我们了解的数组叫做一位数组,因为他的成员只是单个维度的成员构成的,这节课,我们继续深入了解数组的高阶形式:多维数组。

【1】导读

我们来看下面这种情况:有6个小朋友(这里用ABCDEF表示),他们玩游戏分成了3个小组,其中A和B一组,C和D一组,E和F一组。

由于ABCDEF都是单个字符,所有我们可以用 char 来表示他们的类型,我们用程序来表示他们,则可以为:

// 组一
char[] group1 = { 'A', 'B' };
// 组二
char[] group2 = { 'C', 'D' };
// 组三
char[] group3 = { 'E', 'F' };

【2】多维数组定义

这6个小朋友,其实也应该是一个整体,因为他们都是好朋友,存在着朋友关系。

所以,为了表示他们之间的关系,我们用一个二维数组来定义他们,这样他们不但可以体现共同的属性(朋友关系),而且定义后,我们代码看起来也更加的简洁了(3行缩为了1行):

char[][] friends = { { 'A', 'B' }, { 'C', 'D' }, { 'E', 'F' } };

经过我们上面了解了一维数组的定义,这里的二维数组定义应该就不难理解了,二维数组定义就是2个中括号,二维数组的每个成员就是包含大括号的所有一维数组成员。

同理,三维数组就是二维数组的集合,定义也就需要三个中括号,更高维度数组依次推之。

多维数组可以这样理解:如果一个成员是一个点,那么一维数组就是线,二维数组就是面,三维数组就是空间,思维数组就是空间加时间,。。。。。

【3】多维数组的成员取值

一维数组我们按下标取值,如 week[0]、week[1],同理我们二维数组取值也大致类似。

当二维数组写一个下标,就是取对应下标的一维数组,比如:

// 定义3个小组的6个小朋友
char[][] friends = { { 'A', 'B' }, { 'C', 'D' }, { 'E', 'F' } };
// 取出小组1
char[] group1 = friends[0];
// 取出小组2
char[] group2 = friends[1];
// 取出小组3
char[] group3 = friends[2];

当二维数组写2个下标,就是取再降一个维度,就是取一维数组中的成员:

// 定义3个小组的6个小朋友
char[][] friends = { { 'A', 'B' }, { 'C', 'D' }, { 'E', 'F' } };
// 分别取出6个小朋友
char a = friends[0][0];
char b = friends[0][1];
char c = friends[1][0];
char d = friends[1][1];
char e = friends[2][0];
char f = friends[2][1];

【4】多维数组的遍历

一维数组我们的遍历采用的是 for 循环,那么多维数组的遍历,我们可以采用多重 for 循环遍历,比如二维数组我们可以采用双重循环进行遍历:

// 定义3个小组的6个小朋友
char[][] friends = { { 'A', 'B' }, { 'C', 'D' }, { 'E', 'F' } };
// 分别打印6个小朋友
for (int i = 0; i < friends.length; i++) {
	char[] group = friends[i];
	for (int j = 0; j < group.length; j++) {
		System.out.println("小组" + i + "的成员 : " + group[j]);
	}
}

打印结果:

同理,三维数组遍历就需要三重循环,更高维度的数组依次推之。

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