ArrayList與LinkedList都是List接口的實現類面試
ArrayList是數組隊列,至關於動態數組數組
LinkedList是雙向鏈表結構,也可看成堆棧,隊列指針
當隨機訪問List時(get和set操做),ArrayList比LinkedList的效率更高,由於LinkedList是線性的數據存儲方式,因此須要移動指針從前日後依次查找。對象
從利用效率來看,ArrayList自由性較低,由於它須要手動的設置固定大小的容量,可是它的使用比較方便,只須要建立,而後添加數據,經過調用下標進行使用;而LinkedList自由性較高,可以動態的隨數據量的變化而變化,可是它不便於使用索引
面試問題:在刪除可插入對象的動做時,爲何ArrayList的效率會比較低呢?接口
由於ArrayList是使用數組實現的,若要從數組中刪除或插入某一個對象,須要移動後段的數組元素,從而會從新調整索引順序,因此速度上就會比LinkedList要慢許多.相反,LinkedList是使用鏈表實現的,若要從鏈表中刪除或插入某一個對象,只須要改變先後對象的引用便可!隊列