Java:二维数组是以列优先还是行优先的顺序存储的?

在Java中,多维数组是以列优先还是行优先的顺序存储的?

回答:

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]意思是“获取索引2a的条目所引用的3数组,然后获取该下级数组的索引所引用的条目”。我认为它与行优先顺序相当相似,但并不是完全一样。

以上是 Java:二维数组是以列优先还是行优先的顺序存储的? 的全部内容, 来源链接: utcz.com/qa/415514.html

回到顶部