ArrayList和LinkedList有什麼區別?

ArrayList和LinkedList有什麼區別?

ArrayList和LinkedList都實現了List接口,他們有以下的不同點:

  • ArrayList是基於索引的數據接口,它的底層是數組。它可以以O(1)時間複雜度對元素進行隨機訪問。而LinkedList是以雙向循環列表的形式存儲它的數據,每一個元素都和它的前一個和後一個元素鏈接在一起,在這種情況下,查找某個元素的時間複雜度是O(n)。

  • LinkedList的插入,添加,刪除操作速度更快,因爲當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。

  • LinkedList比ArrayList更佔內存,因爲LinkedList爲每一個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。

總結

ArrayList的實現用的是數組,LinkedList是鏈表,ArrayList適合查找,LinkedList適合增刪

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章