1. 程式人生 > >ArrayList與LinkedList

ArrayList與LinkedList

ArrayList與LinkedList都是List介面的實現類

ArrayList是陣列佇列,相當於動態陣列

LinkedList是雙向連結串列結構,也可當作堆疊,佇列

當隨機訪問List時(get和set操作),ArrayList比LinkedList的效率更高,因為LinkedList是線性的資料儲存方式,所以需要移動指標從前往後依次查詢。

從利用效率來看,ArrayList自由性較低,因為它需要手動的設定固定大小的容量,但是它的使用比較方便,只需要建立,然後新增資料,通過呼叫下標進行使用;而LinkedList自由性較高,能夠動態的隨資料量的變化而變化,但是它不便於使用

面試問題:在刪除可插入物件的動作時,為什麼ArrayList的效率會比較低呢?

    因為ArrayList是使用陣列實現的,若要從陣列中刪除或插入某一個物件,需要移動後段的陣列元素,從而會重新調整索引順序,所以速度上就會比LinkedList要慢許多.相反,LinkedList是使用連結串列實現的,若要從連結串列中刪除或插入某一個物件,只需要改變前後物件的引用即可!