ArrayList和LinkedList區(qū)別及使用場(chǎng)景代碼解析
本文研究的主要是Java編程中ArrayList和LinkedList區(qū)別及使用場(chǎng)景的相關(guān)內(nèi)容,具體介紹如下。
1、ArrayList是基于數(shù)組實(shí)現(xiàn)的,其構(gòu)造函數(shù)為:
private transient Object[] elementData; private int size;
ArryList初始化時(shí),elementData數(shù)組大小默認(rèn)為10;
每次add()時(shí),先調(diào)用ensureCapacity()保證數(shù)組不會(huì)溢出,如果此時(shí)已滿,會(huì)擴(kuò)展為數(shù)組length的1.5倍+1,然后用array.copy的方法,將原數(shù)組拷貝到新的數(shù)組中;
ArrayList線程不安全,Vector方法是同步的,線程安全;
2、LinkedList是基于雙鏈表實(shí)現(xiàn)的:
Object element; Entry next, previous;
初始化時(shí),有個(gè)header Entry,值為null;
使用header的優(yōu)點(diǎn)是:在任何一個(gè)條目(包括第一個(gè)和最后一個(gè))都有一個(gè)前置條目和一個(gè)后置條目,因此在LinkedList對(duì)象的開(kāi)始或者末尾進(jìn)行插入操作沒(méi)有特殊的地方;
使用場(chǎng)景:
(1)如果應(yīng)用程序?qū)Ω鱾€(gè)索引位置的元素進(jìn)行大量的存取或刪除操作,ArrayList對(duì)象要遠(yuǎn)優(yōu)于LinkedList對(duì)象;
( 2 ) 如果應(yīng)用程序主要是對(duì)列表進(jìn)行循環(huán),并且循環(huán)時(shí)候進(jìn)行插入或者刪除操作,LinkedList對(duì)象要遠(yuǎn)優(yōu)于ArrayList對(duì)象。
總結(jié)
以上就是本文關(guān)于ArrayList和LinkedList區(qū)別及使用場(chǎng)景代碼解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- java中ArrayList和LinkedList的區(qū)別詳解
- 淺談 java中ArrayList、Vector、LinkedList的區(qū)別聯(lián)系
- 淺析 ArrayList 和 LinkedList 有什么區(qū)別
- Java中ArrayList和LinkedList之間的區(qū)別_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java面試崗常見(jiàn)問(wèn)題之ArrayList和LinkedList的區(qū)別
- Java ArrayList與LinkedList及HashMap容器的用法區(qū)別
- Java中ArrayList和LinkedList的區(qū)別
- Java中ArrayList和LinkedList區(qū)別
- ArrayList與linkedList的用法區(qū)別及擴(kuò)容方式
- Java中ArrayList和LinkedList有什么區(qū)別舉例詳解
相關(guān)文章
SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能
Milvus?是一種高性能、高擴(kuò)展性的向量數(shù)據(jù)庫(kù),可在從筆記本電腦到大型分布式系統(tǒng)等各種環(huán)境中高效運(yùn)行,Deeplearning4j(DL4J)是一個(gè)開(kāi)源的深度學(xué)習(xí)框架,專門為Java和Scala開(kāi)發(fā),本文給大家介紹了SpringBoot集成Milvus和deeplearning4j實(shí)現(xiàn)圖搜圖功能2024-10-10Springcloud Alibaba超詳細(xì)使用詳解
SpringCloudAlibaba是一款優(yōu)秀的微服務(wù)架構(gòu),在市面上有著廣泛的應(yīng)用,這篇文章介紹了SpringCloudAlibaba的一些基本使用,適合初學(xué)者,希望能夠給大家?guī)?lái)幫助2024-08-08Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝
這篇文章主要介紹了Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Collections.shuffle()方法實(shí)例解析
這篇文章主要介紹了Collections.shuffle()方法實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01