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