当前位置: 首页 > 编程语言 > Java > 正文

Java编程那些事儿48—多维数组基础

时间:2010-03-07 csdn 陈跃峰

6.4 多维数组基础

在学校里,由于一个班的人数不多,所以按照顺序编号即可,当人数增多时,例如对于学校里的人,在编号时就要增加层次,例如XX班XX号。在部队中也是这样,XX师XX团XX营XX连XX排XX班,这里的层次就比较深了。为了管理数据的方便,一般要加深管理的层次,这就是多维数组的由来。

多维数组,指二维以及二维以上的数组。二维数组有两个层次,三维数组有三个层次,依次类推。每个层次对应一个下标。

在实际使用中,为了使结构清晰,一般对于复杂的数据都是用多维数组。

关于多维数组的理解,最终的是理解数组的数组这个概念,因为数组本身就是一种复合数据类型,所以数组也可以作为数组元素存在。这样二维数组就可以理解成内部每个元素都是一维数组类型的一个一维数组。三维数组可以理解成一个一维数组,内部的每个元素都是二维数组。无论在逻辑上还是语法上都支持“数组的数组”这种理解方式。

通常情况下,一般用二维数组的第一维代表行,第二维代表列,这种逻辑结构和现实中的结构一致。

和一维数组类似,因为多维数组有多个下标,那么引用数组中的元素时,需要指定多个下标。

6.5 多维数组语法

下面以二维数组为例,来介绍多维数组的语法。

6.5.1 多维数组声明

多维数组的声明:

数据类型[][] 数组名称;

数据类型[]数组名称[];

数据类型  数组名称[][];

以上三种语法在声明二维数组时的功能是等价的。同理,声明三维数组时需要三对中括号,中括号的位置可以在数据类型的后面,也可以在数组名称的后面,其它的依次类推。

例如:

int[][] map;
char c[][];

和一维数组一样,数组声明以后在内存中没有分配具体的存储空间,也没有设定数组的长度。

6.5.2 多维数组初始化

和一维数组一样,多维数组的初始化也可以分为静态初始化(整体赋值)和动态初始化两种,其语法格式如下。