轉(zhuǎn)載:https://www.cnblogs.com/nnngu/p/8234568.html
ArrayList和LinkedList的區(qū)別如下:
- ArrayList的實(shí)現(xiàn)是基于數(shù)組,LinkedList的實(shí)現(xiàn)是基于雙向鏈表。
- 對(duì)于隨機(jī)訪問,ArrayList優(yōu)于LinkedList,ArrayList可以根據(jù)下標(biāo)以O(shè)(1)時(shí)間復(fù)雜度對(duì)元素進(jìn)行隨機(jī)訪問。而LinkedList的每一個(gè)元素都依靠地址指針和它后一個(gè)元素連接在一起,在這種情況下,查找某個(gè)元素的時(shí)間復(fù)雜度是O(n)
- 對(duì)于插入和刪除操作,LinkedList優(yōu)于ArrayList,因?yàn)楫?dāng)元素被添加到LinkedList任意位置的時(shí)候,不需要像ArrayList那樣重新計(jì)算大小或者是更新索引。
- LinkedList比ArrayList更占內(nèi)存,因?yàn)長inkedList的節(jié)點(diǎn)除了存儲(chǔ)數(shù)據(jù),還存儲(chǔ)了兩個(gè)引用,一個(gè)指向前一個(gè)元素,一個(gè)指向后一個(gè)元素。