迭代1维与2维阵列的速度

时间:2013-09-09 19:25:41

标签: java arrays performance

由于数据的存储方式,我正在阅读一篇关于如何水平迭代2维数组比垂直更快的文章(参见:Fastest way to loop through a 2d array?)。当我阅读答案时,这是有道理的,但它让我想知道2和1维阵列之间的差异。在使用相同数量的单元格迭代1维与2维数组时是否有任何速度差异?

1 个答案:

答案 0 :(得分:3)

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

对于一维与二维,一维会更快,因为它是一个数组查找和一个原语与一个数组查找,一个数组对象引用的解引用,然后在中查找那个数组。

然而,这种微观优化并不一定是你的时间的最佳用途,因为可能有更好的改进空间。