我一直只是一個人使用:List<String> names = new ArrayList<>();我使用接口作為可移植性的類型名稱,因此當(dāng)我問這些問題時,我可以重新編寫代碼。何時應(yīng)該LinkedList使用,ArrayList反之亦然?
3 回答

交互式愛情
TA貢獻1712條經(jīng)驗 獲得超3個贊
ArrayList
是你想要的。LinkedList
幾乎總是一個(性能)錯誤。
為什么LinkedList
糟透了:
它使用大量小內(nèi)存對象,因此會影響整個過程的性能。
很多小對象都不利于緩存局部性。
任何索引操作都需要遍歷,即具有O(n)性能。這在源代碼中并不明顯,導(dǎo)致算法O(n)比
ArrayList
使用的算法慢。獲得良好的表現(xiàn)是棘手的。
即使大O性能相同
ArrayList
,但無論如何它可能會明顯變慢。LinkedList
在源代碼中看到它很不耐煩,因為它可能是錯誤的選擇。
添加回答
舉報
0/150
提交
取消