秋招之際,記錄下。希望拿到心儀的offer

1、ArrayList與LinkedList的區別?(ali一面 卒)

①ArrayList實現了List接口,底層實現了基於動態數組的數據結構,LinkedList基於鏈表的數據結構來實現List接口的。它本身有自己特定的方法,如: addFirst(),addLast(),getFirst(),removeFirst()等。

②對於隨機訪問get和set,ArrayList性能優於LinkedList,因爲LinkedList要移動指針,而數組的特性是可以使用索引的方式來快速定位對象的位置,因此對於快速的隨機取得對象的需求,使用ArrayList實現執行效率上會比較好。

③對於新增和刪除操作,LinkedList性能好,因爲ArrayList要移動數據,而LinkedList由於是採用鏈表實現的,因此在進行insert和remove動作時在效率上要比ArrayList要好得多!適合用來實現Stack(堆棧)與Queue(隊列),前者先進後出,後者是先進先出.

ArrayList內部是使用可増長數組實現的,所以是用get和set方法是花費常數時間的,但是如果插入元素和刪除元素,除非插入和刪除的位置都在表末尾,否則代碼開銷會很大,因爲裏面需要數組的移動。

LinkedList是使用雙鏈表實現的,所以get會非常消耗資源,除非位置離頭部很近。但是插入和刪除元素花費常數時間。

 

 

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