我正在读一篇文章,内容是,由于数据的存储方式(参见:Fastest way to loop through a 2d array?),水平遍历二维数组的速度比垂直迭代要快。当我读到答案时,这是有意义的,但它让我想知道二维数组和一维数组之间的区别是什么。在相同单元格数的一维和二维数组的迭代中有速度差异吗?
发布于 2013-09-09 19:28:08
在Java上,数组有更多的因素和更多的开销。由于数组是对象,所以int[][]是ints数组对象的数组。如果hotspot优化或缓存数组访问,这可能会使水平迭代比垂直迭代更快。
对于一维和二维,一维会更快,因为它是一个数组查找,一个原始的和一个数组的查找,一个数组对象的引用的取消引用,然后在那个数组中的一个查找。
然而,这种微优化并不一定是最好的利用您的时间,因为可能有更好的地方进行改进。
https://stackoverflow.com/questions/18705463
复制相似问题