日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArrayList与LinkedList的比较

發(fā)布時(shí)間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArrayList与LinkedList的比较 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ArrayList 繼承AbstractList<E>,實(shí)現(xiàn)List、Cloneable和Serializable接口

LinkedList繼承AbstractSequentialList<E>,實(shí)現(xiàn)List、Cloneable和Serializable接口
?

元素存儲(chǔ)方式:

ArrayList 采用數(shù)組的方式存儲(chǔ)

LinkedList采用鏈表結(jié)構(gòu)存儲(chǔ)

add:

  • 對(duì)于元素的add()來說,LinkedList要比ArrayList要快一些,因?yàn)锳rrayList可能需要額外的擴(kuò)容操作,當(dāng)然如果沒有擴(kuò)容,二者沒有很大的差別
  • 對(duì)于元素的add(int, element),對(duì)于LinkedList來說,代價(jià)主要在遍歷獲取插入的位置的元素,而ArrayList的主要代價(jià)在于可能有額外的擴(kuò)容和大量元素的移動(dòng)
  • 小結(jié):對(duì)于簡單的元素添加,如果事先知道元素的個(gè)數(shù),采用預(yù)置大小的ArrayList要更好,反之可以考慮LinkedList

remove:

刪除操作中,LinkedList更有優(yōu)勢,一旦找到了刪除的節(jié)點(diǎn),它僅僅只是斷開鏈接關(guān)系,并沒有元素復(fù)制移動(dòng)的行為,而ArrayList不可避免的又要進(jìn)行元素的移動(dòng)。

遍歷:

按照索引遍歷,ArrayList是更好的選擇,按照Iterator遍歷,也許LinkedList會(huì)好一些。

反過來理解,如果是ArrayList,Iterator和index遍歷都可以,如果是LinkedList,優(yōu)先選擇Iterator比較好。

其他

  • 對(duì)于ArrayList和LinkedList, size() isEmpty() 這些都是常量計(jì)算,代價(jià)很低
  • LinkedList實(shí)現(xiàn)了更多的方法,包括Queue,所以它也是一種隊(duì)列
  • 對(duì)于少量得元素臨時(shí)存儲(chǔ),優(yōu)先考慮ArrayList
  • 頻繁的添加和刪除操作的時(shí)候,優(yōu)先使用LinkedList
  • 頻繁的按索引訪問遍歷,優(yōu)先使用ArrayList

轉(zhuǎn)自:http://www.xeclipse.com/?p=1324

?

轉(zhuǎn)載于:https://blog.51cto.com/ak1ng/1137201

總結(jié)

以上是生活随笔為你收集整理的ArrayList与LinkedList的比较的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。