鏈表有索引嗎 arraylist和linkedlist區(qū)別?
arraylist和linkedlist區(qū)別?LinkedList和ArrayList的區(qū)別1。不同的數(shù)據(jù)結(jié)構(gòu)ArrayList是數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList是link的數(shù)據(jù)結(jié)構(gòu)。2. 效率不
arraylist和linkedlist區(qū)別?
LinkedList和ArrayList的區(qū)別
1。不同的數(shù)據(jù)結(jié)構(gòu)
ArrayList是數(shù)組的數(shù)據(jù)結(jié)構(gòu),LinkedList是link的數(shù)據(jù)結(jié)構(gòu)。
2. 效率不同
隨機訪問列表(get和set操作)時,ArrayList比LinkedList效率更高,因為LinkedList是一種線性數(shù)據(jù)存儲模式,所以需要前后移動指針。
添加和刪除數(shù)據(jù)(添加和刪除操作)時,LinkedList比ArrayList更高效。由于ArrayList是一個數(shù)組,在其中添加和刪除操作會影響操作點之后所有數(shù)據(jù)的下標(biāo)索引,因此需要進行數(shù)據(jù)移動。
3. 不同的自由度
ArrayList的自由度比較低,因為它需要手動設(shè)置固定大小的容量,但是使用起來比較方便,只需要創(chuàng)建,然后添加數(shù)據(jù),并通過調(diào)用下標(biāo)來使用;而LinkedList的自由度比較高,可以隨數(shù)據(jù)量的變化而動態(tài)變化,但是使用起來并不容易。
arraylist和linkedlist的區(qū)別和使用場景?
1. ArrayList是基于array實現(xiàn)的,其構(gòu)造函數(shù)為:private transient object[]elementdata private int size。ArrayList初始化時,elementdata數(shù)組的大小默認為10;每次add()時,都會調(diào)用ensuracapacity(),以確保數(shù)組不會溢出。如果此時已滿,則將其擴展到數(shù)組長度1的1.5倍,然后使用數(shù)組.copy[2] LinkedList是基于雙鏈表實現(xiàn)的:object element entry下一步,初始化前,使用header的優(yōu)點是:在任何條目(包括第一條和最后一條)中都有一個pre-entry和post-entry,因此在LinkedList對象的開頭或結(jié)尾沒有特殊的插入位置;使用場景:(1)如果應(yīng)用程序在每個索引位置存儲大量元素,結(jié)果表明ArrayList對象在獲取或刪除操作方面比LinkedList對象要好得多;(2)如果應(yīng)用程序主要循環(huán)列表,并在循環(huán)中插入或刪除操作,LinkedList對象比ArrayList對象好得多;