我必須實現一種算法,該算法始終將條目插入最后并從第一個位置刪除條目。他們說“ArrayList 存儲在內存中的連續空間中。這允許操作系統使用優化,例如“當訪問內存中的一個字節時,很可能很快就會訪問下一個字節”。因此,ArrayList 是總比 LinkedList 快”但一種情況:在列表開頭插入/刪除元素時(因為必須移動數組中的所有元素)。在 ArrayList 的情況下,在末尾或中間添加/刪除、迭代、訪問元素都更快。在我的算法中,總是刪除第一個元素。所以,總是發生移位。在這種情況下,我不應該使用數組列表??
1 回答

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
這實際上取決于您希望對結構做些什么。
如果大多數時候您只是在最后添加并從開始刪除,那么Deque 的任何實現都可以。所以ArrayDeque或LinkedList可能是你最好的候選人。
ArrayDeque
由數組支持,因此可以通過具有O(1)
復雜性的索引快速訪問,但它的缺點是添加速度可能比LinkedList
有時需要調整支持數組的大小要慢。
LinkedList
只是一個鏈表,所以它一直在增長/縮小,O(1)
但通過索引訪問并不是因為找到nth
條目是O(n)
.
添加回答
舉報
0/150
提交
取消