Java没有多维数组。它具有数组的数组。例如
int[][]
…是
int[](当然
int[]是)的数组
int。
因此,Java既不是列优先顺序也不是行优先顺序(但请参见下面的有关如何读取的注意事项
a[2][3]),因为给定数组的条目存储在连续的内存块中,而这些条目所指向的从属数组是对象的引用。完全独立的,无关的内存块。这也意味着Java的数组数组固有地呈
锯齿状
:处的条目
[0]可能引用了3个插槽的数组,其中的处
[1]引用了4个插槽的数组,
[2]可能根本没有引用一个数组(它可能具有
null),可能
[3]是指6插槽阵列。
一幅图片价值1k-24字,以及以下所有内容:
+-------+ +----> | int [] |+---------- +-------+| int [] [] | | | 0:整数|+---------- | 1:int || 0:int [] | ------- + | 2:int || 1:int [] | ------ + + ---------- +| 2:空| || 3:int [] |-+ | +-------++---------- +----> | int [] | | +-------+ | | 0:整数| | | 1:int | | | 2:int | | | 3:int | | +-------+ | | +-------+ +--------| int [] | +-------+ | 0:整数| | 1:int | | 2:int | | 3:int | | 4:int | | 5:int | +-------+
知道之后,您就知道(say)的
a[2][3]意思是“获取索引
2为
a的条目所引用的
3数组,然后获取该下级数组的索引所引用的条目”。我认为它与行优先顺序相当相似,但并不是完全一样。



