ArrayList與LinkedList的區(qū)別和使用場景

1. LinkedList和ArrayList的差別主要來自于Array和LinkedList數(shù)據(jù)結(jié)構(gòu)的不同。ArrayList是基于數(shù)組實(shí)現(xiàn)的碧注,LinkedList是基于雙鏈表實(shí)現(xiàn)的震缭。另外LinkedList類不僅是List接口的實(shí)現(xiàn)類垫竞,可以根據(jù)索引來隨機(jī)訪問集合中的元素,除此之外蛀序,LinkedList還實(shí)現(xiàn)了Deque接口,Deque接口是Queue接口的子接口活烙,它代表一個(gè)雙向隊(duì)列徐裸,因此LinkedList可以作為雙向?qū)α校瑮#梢詤⒁奃eque提供的接口方法)和List集合使用啸盏,功能強(qiáng)大重贺。

2. 因?yàn)锳rray是基于索引(index)的數(shù)據(jù)結(jié)構(gòu),它使用索引在數(shù)組中搜索和讀取數(shù)據(jù)是很快的回懦,可以直接返回?cái)?shù)組中index位置的元素气笙,因此在隨機(jī)訪問集合元素上有較好的性能。Array獲取數(shù)據(jù)的時(shí)間復(fù)雜度是O(1),但是要插入怯晕、刪除數(shù)據(jù)卻是開銷很大的潜圃,因?yàn)檫@需要移動(dòng)數(shù)組中插入位置之后的的所有元素。

3. 相對于ArrayList舟茶,LinkedList的隨機(jī)訪問集合元素時(shí)性能較差谭期,因?yàn)樾枰陔p向列表中找到要index的位置堵第,再返回;但在插入隧出,刪除操作是更快的踏志。因?yàn)長inkedList不像ArrayList一樣,不需要改變數(shù)組的大小胀瞪,也不需要在數(shù)組裝滿的時(shí)候要將所有的數(shù)據(jù)重新裝入一個(gè)新的數(shù)組针余,這是ArrayList最壞的一種情況,時(shí)間復(fù)雜度是O(n)凄诞,而LinkedList中插入或刪除的時(shí)間復(fù)雜度僅為O(1)圆雁。ArrayList在插入數(shù)據(jù)時(shí)還需要更新索引(除了插入數(shù)組的尾部)。

4. LinkedList需要更多的內(nèi)存幔摸,因?yàn)锳rrayList的每個(gè)索引的位置是實(shí)際的數(shù)據(jù)摸柄,而LinkedList中的每個(gè)節(jié)點(diǎn)中存儲(chǔ)的是實(shí)際的數(shù)據(jù)和前后節(jié)點(diǎn)的位置。

使用場景:

(1)如果應(yīng)用程序?qū)?shù)據(jù)有較多的隨機(jī)訪問既忆,ArrayList對象要優(yōu)于LinkedList對象驱负;

( 2 ) 如果應(yīng)用程序有更多的插入或者刪除操作,較少的數(shù)據(jù)讀取患雇,LinkedList對象要優(yōu)于ArrayList對象跃脊;

(3)不過ArrayList的插入,刪除操作也不一定比LinkedList慢苛吱,如果在List靠近末尾的地方插入酪术,那么ArrayList只需要移動(dòng)較少的數(shù)據(jù),而LinkedList則需要一直查找到列表尾部翠储,反而耗費(fèi)較多時(shí)間绘雁,這時(shí)ArrayList就比LinkedList要快。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末援所,一起剝皮案震驚了整個(gè)濱河市庐舟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌住拭,老刑警劉巖挪略,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滔岳,居然都是意外死亡杠娱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門谱煤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摊求,“玉大人,你說我怎么就攤上這事刘离《么兀” “怎么了奏赘?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長太惠。 經(jīng)常有香客問我磨淌,道長,這世上最難降的妖魔是什么凿渊? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任梁只,我火速辦了婚禮,結(jié)果婚禮上埃脏,老公的妹妹穿的比我還像新娘搪锣。我一直安慰自己,他們只是感情好彩掐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布构舟。 她就那樣靜靜地躺著,像睡著了一般堵幽。 火紅的嫁衣襯著肌膚如雪辜腺。 梳的紋絲不亂的頭發(fā)上腺逛,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼存璃。 笑死预伺,一個(gè)胖子當(dāng)著我的面吹牛荚坞,可吹牛的內(nèi)容都是我干的戳鹅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼团滥,長吁一口氣:“原來是場噩夢啊……” “哼竿屹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起灸姊,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羔沙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后厨钻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坚嗜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年夯膀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苍蔬。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诱建,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碟绑,到底是詐尸還是另有隱情俺猿,我是刑警寧澤茎匠,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站押袍,受9級特大地震影響诵冒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谊惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一汽馋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧圈盔,春花似錦豹芯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至众眨,卻和暖如春握牧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背围辙。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工我碟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姚建。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓矫俺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掸冤。 傳聞我的和親對象是個(gè)殘疾皇子厘托,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容