[英]Speed of iterating through 1-dimensional vs 2-dimensional arrays
我正在閱讀一篇關於二維數組在水平方向上比在垂直方向上迭代快的方法,這是因為數據的存儲方式(請參閱: 循環遍歷2d數組的最快方法? )。 當我閱讀答案時,這很有意義,但讓我想知道2維和1維數組之間的區別是什么。 在單元數量相同的情況下,迭代一維數組與二維數組有速度差異嗎?
在Java上,還有更多因素和更多的數組開銷。 由於數組是對象,因此int[][]
是ints
的數組對象的數組。 如果熱點優化或緩存陣列訪問,則這可能使水平迭代比垂直迭代更快。
對於一維還是二維,一維將更快,因為它是數組查找,而原始是數組查找,是數組對象引用的解引用,然后是該數組中的查找。
但是,這種微優化不一定是您時間的最佳利用,因為可能會有更好的改進地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.