天天看點

ArrayList和LinkedList的優缺點ArrayList和LinkedList的優缺點

ArrayList和LinkedList的優缺點

類别 原理 優點 缺點
ArrayList arraylist類似于數組形式,資料隻要給定索引就可以直接得到數字,ArrayList是實作了基于動态數組的資料結構 相比較而言“查”比較好 采用的是數組形式來儲存對象的,這種方式将對象放在連續的位置中,是以最大的缺點就是插入删常麻煩
LinkedList linklist是使用類似于連結清單來存儲的 LinkedList基于連結清單的資料結構 相比較而言“增”“删”比較好 采用的将對象存放在獨立的空間中,而且在每個空間中還儲存下一個連結的索引 但是缺點就是查找非常麻煩 要叢第一個索引開始

總結:

(1)若隻對單條資料插入或删除,ArrayList的速度反而優于LinkedList。但若是批量随機的插入删除資料,LinkedList的速度大大優于ArrayList。

原因分析:

ArrayList類似于數組形式,資料隻要給定索引就可以直接得到數字,arraylist也一樣,但是如果要增删,就要移動後面的所有元素,這樣就慢了,而且越靠前越慢;而linklist是使用類似于連結清單來存儲的,與arraylist相反,增删隻要添加一個連接配接就可以了,不要移動後面的所有元素。

(2)當操作是在一列資料的後面添加資料而不是在前面或中間,并且需要随機地通路其中的元素時,使用ArrayList會提供比較好的性能;當你的操作是在一列資料的前面或中間添加或删除資料,并且按照順序通路其中的元素時,就應該使用LinkedList了。

(3)1.對于随機通路get和set,ArrayList覺得優于LinkedList,因為LinkedList要移動指針。 2. 對于新增和删除操作add和remove,LinedList比較占優勢,因為ArrayList要移動資料 。

繼續閱讀