欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中ArrayList與LinkedList對(duì)比詳情

 更新時(shí)間:2017年04月20日 09:47:43   作者:也有涯  
這篇文章主要通過實(shí)例對(duì)Java中ArrayList與LinkedList進(jìn)行了對(duì)比,需要的朋友可以參考下

 ArrayList,LinkedList都是Collection接口的通用實(shí)現(xiàn)方式,兩者采用了不用的存儲(chǔ)策略,用來適應(yīng)不同場合的需要。

實(shí)現(xiàn)方式

  ArrayList的內(nèi)部采用集合的方式存儲(chǔ)數(shù)據(jù)

唯一需要注意的是對(duì)于容量超過閾值的處理邏輯,數(shù)組的默認(rèn)容量大小是10,最大容量是Integer.Max_Value,超過最大容量會(huì)拋內(nèi)存溢出異常,

擴(kuò)容機(jī)制看下面

擴(kuò)容后的容量是原有容量的1.5倍

LinkedList的實(shí)現(xiàn)方式

內(nèi)部采用雙向鏈表Node內(nèi)部類來存儲(chǔ)數(shù)據(jù),由于采用了雙向鏈表,LinkedList也可以當(dāng)做棧和隊(duì)列來使用,但是效率比較低,Java提供了ArrayDeqeue的高效率實(shí)現(xiàn)。

性能比較

在尾部插入效率上面,兩者相差不會(huì)太大,但是LinkedList需要維護(hù)雙向鏈表的關(guān)系,所有存儲(chǔ)效率上面會(huì)略遜于ArrayList

ArrayList的時(shí)間主要耗時(shí)在容量擴(kuò)容,數(shù)據(jù)遷移上面,如果我們一次性初始化容量,應(yīng)該還可以有提升的空間,再來對(duì)比看看,有恐怖的50%的提升空間

Linked的優(yōu)勢(shì)在于頭部插入的效率,只需要修改頭部元素的指針就可以做到,而數(shù)組還需要移動(dòng)后續(xù)的數(shù)據(jù),所有效率遠(yuǎn)遠(yuǎn)低于LinkedList

對(duì)于get,set的操作,鏈表內(nèi)部通過二分查找,數(shù)組可以通過下標(biāo)直接訪問元素,所以效率高于LinkedList

基于以上比較,我們基本上可以確定
如果只是存放數(shù)據(jù),并進(jìn)行j簡單的迭代情況下,我們一般采用集合的效率最高,

如果涉及到頻繁的修改元素,就應(yīng)該采用LinkedList

希望本篇文章對(duì)您有所幫助

相關(guān)文章

  • springboot項(xiàng)目數(shù)據(jù)庫配置類DatabaseConfig示例詳解

    springboot項(xiàng)目數(shù)據(jù)庫配置類DatabaseConfig示例詳解

    這篇文章主要介紹了springboot項(xiàng)目數(shù)據(jù)庫配置類DatabaseConfig實(shí)現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個(gè)子接口,Set代表不可重復(fù)的無序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊(duì)列實(shí)現(xiàn),通過它們不斷的擴(kuò)展出很多的集合類,接下來我們?cè)敿?xì)介紹一下
    2021-11-11
  • springboot實(shí)現(xiàn)配置本地訪問端口及路徑

    springboot實(shí)現(xiàn)配置本地訪問端口及路徑

    這篇文章主要介紹了springboot實(shí)現(xiàn)配置本地訪問端口及路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java方法重載的使用實(shí)戰(zhàn)案例

    Java方法重載的使用實(shí)戰(zhàn)案例

    這篇文章主要介紹了Java方法重載的使用,結(jié)合具體實(shí)例形式分析了java方法重載的基本使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Java實(shí)現(xiàn)帶GUI的氣泡詩詞效果

    Java實(shí)現(xiàn)帶GUI的氣泡詩詞效果

    這篇文章主要為大家介紹了如何利用Java實(shí)現(xiàn)帶GUI的氣泡詩詞效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,感興趣的可以了解一下
    2022-12-12
  • logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    logback 實(shí)現(xiàn)給變量指定默認(rèn)值

    這篇文章主要介紹了logback 實(shí)現(xiàn)給變量指定默認(rèn)值操作,具有很好的參考家價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 非常全面的IReport的使用教程

    非常全面的IReport的使用教程

    iReport 是為JasperReports Library和JasperReports Server設(shè)計(jì)的報(bào)表可視化設(shè)計(jì)器。本教程給大家詳細(xì)介紹IReport的使用解析,感興趣的朋友一起看看吧
    2021-10-10
  • java實(shí)現(xiàn)Z字形掃描程序

    java實(shí)現(xiàn)Z字形掃描程序

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)Z字形掃描程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • java開發(fā)使用BigDecimal避坑四則

    java開發(fā)使用BigDecimal避坑四則

    這篇文章主要為大家介紹了java開發(fā)使用BigDecimal的避坑四則,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • eclipse/intellij idea 遠(yuǎn)程調(diào)試hadoop 2.6.0

    eclipse/intellij idea 遠(yuǎn)程調(diào)試hadoop 2.6.0

    這篇文章主要介紹了eclipse/intellij idea 遠(yuǎn)程調(diào)試hadoop 2.6.0的相關(guān)資料,需要的朋友可以參考下
    2016-07-07

最新評(píng)論