ArrayList和LinkedList區(qū)別及使用場景代碼解析
本文研究的主要是Java編程中ArrayList和LinkedList區(qū)別及使用場景的相關內(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é)
以上就是本文關于ArrayList和LinkedList區(qū)別及使用場景代碼解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- 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ū)別舉例詳解
相關文章
Spring?component-scan?XML配置與@ComponentScan注解配置
這篇文章主要介紹了Spring?component-scan?XML配置與@ComponentScan注解配置,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
spring boot2結(jié)合mybatis增刪改查的實現(xiàn)
這篇文章主要給大家介紹了關于spring boot2結(jié)合mybatis增刪改查的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot2具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09
將一個數(shù)組按照固定大小進行拆分成數(shù)組的方法
下面小編就為大家?guī)硪黄獙⒁粋€數(shù)組按照固定大小進行拆分成數(shù)組的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11

