3.11.2 多维数组(1)
在Java中,多维数组实际上是数组的数组。可能正如您所愿,Java中的多维数组无论是形式还是行为都与常规的多维数组类似。然而,您将会看到它们之间有一些微妙的区别。为了声明多维数组变量,需要使用另外一组方括号指定每个额外的索引。例如,下面声明了一个名为twoD的二维数组:
这条语句分配了一个4×5的数组,并将之赋给twoD。在内部,这个矩阵是作为int数组的数组实现的。从概念上讲,这个数组看起来如图3-1所示。
- int twoD[][] = new int[4][5];
(点击查看大图)图3-1 4×5二维数组的概念视图 |
下面的程序按照从左向右、从上向下的顺序列出数组中的每个元素,然后显示这些元素的值:
当为多维数组分配内存时,只需要为第一(最左边的)维分配内存。可以单独为余下的维分配内存。例如,下面的代码在声明时为twoD的第一维分配内存,然后手动分配第二维:
虽然对于这种情况单独分配第二维没有优点,但是这对于其他情况可能有优点。例如,当手动分配维数时,不必为每一维分配相同数量的元素。正如在前面说明的,既然多维数组实际上是数组的数组,那么您可以控制每个数组的长度。例如,下面的程序创建了一个二维数组,其中第二维的长度不是相同的: