ArrayList与LinkedList的比较
生活随笔
收集整理的這篇文章主要介紹了
ArrayList与LinkedList的比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ArrayList 繼承AbstractList<E>,實現List、Cloneable和Serializable接口
LinkedList繼承AbstractSequentialList<E>,實現List、Cloneable和Serializable接口
?
元素存儲方式:
ArrayList 采用數組的方式存儲
LinkedList采用鏈表結構存儲
add:
- 對于元素的add()來說,LinkedList要比ArrayList要快一些,因為ArrayList可能需要額外的擴容操作,當然如果沒有擴容,二者沒有很大的差別
- 對于元素的add(int, element),對于LinkedList來說,代價主要在遍歷獲取插入的位置的元素,而ArrayList的主要代價在于可能有額外的擴容和大量元素的移動
- 小結:對于簡單的元素添加,如果事先知道元素的個數,采用預置大小的ArrayList要更好,反之可以考慮LinkedList
remove:
刪除操作中,LinkedList更有優勢,一旦找到了刪除的節點,它僅僅只是斷開鏈接關系,并沒有元素復制移動的行為,而ArrayList不可避免的又要進行元素的移動。
遍歷:
按照索引遍歷,ArrayList是更好的選擇,按照Iterator遍歷,也許LinkedList會好一些。
反過來理解,如果是ArrayList,Iterator和index遍歷都可以,如果是LinkedList,優先選擇Iterator比較好。
其他
- 對于ArrayList和LinkedList, size() isEmpty() 這些都是常量計算,代價很低
- LinkedList實現了更多的方法,包括Queue,所以它也是一種隊列
- 對于少量得元素臨時存儲,優先考慮ArrayList
- 頻繁的添加和刪除操作的時候,優先使用LinkedList
- 頻繁的按索引訪問遍歷,優先使用ArrayList
轉自:http://www.xeclipse.com/?p=1324
?
轉載于:https://blog.51cto.com/ak1ng/1137201
總結
以上是生活随笔為你收集整理的ArrayList与LinkedList的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AS3 鼠标指针样式
- 下一篇: js英文文章