繁体   English   中英

一维数组与二维数组的迭代速度

[英]Speed of iterating through 1-dimensional vs 2-dimensional arrays

我正在阅读一篇关于二维数组在水平方向上比在垂直方向上迭代快的方法,这是因为数据的存储方式(请参阅: 循环遍历2d数组的最快方法? )。 当我阅读答案时,这很有意义,但让我想知道2维和1维数组之间的区别是什么。 在单元数量相同的情况下,迭代一维数组与二维数组有速度差异吗?

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

对于一维还是二维,一维将更快,因为它是数组查找,而原始是数组查找,是数组对象引用的解引用,然后是数组中的查找。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM