欧美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)不同場(chǎ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簡(jiǎn)單的迭代情況下,我們一般采用集合的效率最高,

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

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

相關(guān)文章

  • Java Http請(qǐng)求傳json數(shù)據(jù)亂碼問題的解決

    Java Http請(qǐng)求傳json數(shù)據(jù)亂碼問題的解決

    這篇文章主要介紹了Java Http請(qǐng)求傳json數(shù)據(jù)亂碼問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 一問詳解SpringBoot配置文件優(yōu)先級(jí)

    一問詳解SpringBoot配置文件優(yōu)先級(jí)

    在SpringBoot項(xiàng)目當(dāng)中,我們要想配置一個(gè)屬性,可以通過這三種方式當(dāng)中的任意一種來配置都可以,那么優(yōu)先級(jí)怎么算,本文主要介紹了一問詳解SpringBoot配置文件優(yōu)先級(jí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot集成iText實(shí)現(xiàn)電子簽章功能

    SpringBoot集成iText實(shí)現(xiàn)電子簽章功能

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何集成iText實(shí)現(xiàn)電子簽章功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • Spring Security的簡(jiǎn)單使用

    Spring Security的簡(jiǎn)單使用

    這篇文章主要介紹了Spring Security的簡(jiǎn)單使用,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-04-04
  • Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    這篇文章主要介紹了Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別,@Autowired 可以單獨(dú)使用,如果單獨(dú)使用,它將按類型裝配,因此,如果在容器中聲明了多個(gè)相同類型的bean,則會(huì)出現(xiàn)問題,因?yàn)?nbsp;@Autowired 不知道要使用哪個(gè)bean來注入,需要的朋友可以參考下
    2023-11-11
  • MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯(cuò)的解決

    MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯(cuò)的解

    這篇文章主要介紹了MyBatis中模糊查詢使用CONCAT('%',#{str},'%')出錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java synchronized實(shí)現(xiàn)可見性過程解析

    java synchronized實(shí)現(xiàn)可見性過程解析

    這篇文章主要介紹了java synchronized實(shí)現(xiàn)可見性過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • MyBatis中select語句中使用String[]數(shù)組作為參數(shù)的操作方法

    MyBatis中select語句中使用String[]數(shù)組作為參數(shù)的操作方法

    在 MyBatis 中,如何在 mapper.xml 配置文件中 select 語句中使用 String[] 數(shù)組作為參數(shù)呢,并且使用IN關(guān)鍵字來匹配數(shù)據(jù)庫中的記錄,這篇文章主要介紹了MyBatis中select語句中使用String[]數(shù)組作為參數(shù),需要的朋友可以參考下
    2023-12-12
  • Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán)

    Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán)

    這篇文章主要介紹了Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán),HashMap?死循環(huán)是一個(gè)比較常見、比較經(jīng)典的問題,下面文章我們就來徹底理解死循環(huán)的原因。需要的小伙伴可以參考一下
    2022-05-05
  • 深入理解java自旋鎖

    深入理解java自旋鎖

    這篇文章主要介紹了如何深入理解java自旋鎖,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面和小編來一起學(xué)習(xí)下吧
    2019-05-05

最新評(píng)論