Java的数组可以存储同一类型的许多数据。你甚至可以将数据存储在既有也有二维数组(two-dimensional array)里。代表表格中横向排布的元素,代表表格中纵向排布的元素。下图的储物柜有三行六列。

对于本身以行列方式组织的数据,如电子表单、宾果游戏、象棋棋盘、影院座位、班级座位或数字图像,使用二维数组会非常方便。就国际象棋棋盘而言,字母代表行,从1开始的数字代表列。

数组的储存

很多编程语言本质上将二维数组储存为一维数组。典型的做法是先把第一行的所有数据储存在一块,紧接着的是第二行的所有数据、第三行的所有数据等等。这被称为row-major order。有些编程语言则先把第一列的所有数据储存在一块,紧接着的是第二列的所有数据、第三列的所有数据等等。这被称为column-major order

事实上,Java将二维数组储存为数组的数组。外层数组的每个元素是每个内层数组的引用。下图展示了一个3行7列的二维数组。注意数组索引的有效范围是0length - 1

为了简化理解,AP计算机考试中假定二维数组同行元素储存在一起。外层数组索引被理解成行索引,而内层数组索引被理解成列索引。AP计算机假定所有的内层数组长度一致,虽然Java本身对此并无要求或限制。


陈 欣

AADPS创始人

发表评论