ArrayList和LinkedList有什麼區別?
ArrayList和LinkedList都實現了List接口,他們有以下的不同點:
-
ArrayList是基於索引的數據接口,它的底層是數組。它可以以O(1)時間複雜度對元素進行隨機訪問。而LinkedList是以雙向循環列表的形式存儲它的數據,每一個元素都和它的前一個和後一個元素鏈接在一起,在這種情況下,查找某個元素的時間複雜度是O(n)。
-
LinkedList的插入,添加,刪除操作速度更快,因爲當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。
-
LinkedList比ArrayList更佔內存,因爲LinkedList爲每一個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。
總結
ArrayList的實現用的是數組,LinkedList是鏈表,ArrayList適合查找,LinkedList適合增刪