1. 程式人生 > >ArrayList 和 LinkedList 有什麼區別?

ArrayList 和 LinkedList 有什麼區別?

ArrayList 和 LinkedList 都實現了 List 介面,他們有以下的不同點:
ArrayList 是基於索引的資料介面,它的底層是陣列。它可以以O(1)時間複雜度對元素進行隨機訪問。與此對 應,LinkedList 是以元素列表的形式儲存它的資料,每一個元素都和它的前一個和後一個元素連結在一起,在這 種情況下,查詢某個元素的時間複雜度是O(n)。
相對於 ArrayList,LinkedList 的插入,新增,刪除操作速度更快,因為當元素被新增到集合任意位置的時 候,不需要像陣列那樣重新計算大小或者是更新索引。
LinkedList 比 ArrayList 更佔記憶體,因為 LinkedList 為每一個節點儲存了兩個引用,一個指向前一個元素,一 個指向下一個元素。