ArrayList 和 LinkedList 都實現了 List 接口,他們有如下的不一樣點:數組
1. ArrayList 是基於索引的數據接口,它的底層是數組。它能夠以O(1)時間複雜度對元素進行隨機訪問。與此對應,LinkedList 是以元素列表的形式存儲它的數據,每個元素都和它的前一個和後一個元素連接在一塊兒,在這種狀況下,查找某個元素的時間複雜度是O(n)。索引
相對於 ArrayList,LinkedList 的插入,添加,刪除操做速度更快,由於當元素被添加到集合任意位置的時候,不須要像數組那樣從新計算大小或者是更新索引。接口
LinkedList 比 ArrayList 更佔內存,由於 LinkedList 爲每個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。內存