0

我正在阅读一篇文章,内容是由于数据的存储方式,水平遍历二维数组比垂直遍历更快(参见:Fastest way to loop through a 2d array?)。当我阅读答案时这是有道理的,但它让我想知道 2 维数组和 1 维数组之间有什么区别。迭代具有相同单元数的一维数组和二维数组是否有速度差异?

4

1 回答 1

3

在 Java 上,数组有更多的因素和更多的开销。由于数组是对象,int[][]因此是数组对象的数组ints。如果热点优化或缓存数组访问,这可能会使水平迭代比垂直迭代更快。

对于一维与二维,一维会更快,因为它是数组查找和原始与数组查找,数组对象引用的取消引用,然后是数组中的查找。

但是,这种微优化不一定是时间的最佳利用,因为可能有更好的地方进行改进。

于 2013-09-09T19:28:08.490 回答