ArrayList 和 LinkedList的區別

2021-09-17 23:19:37 字數 627 閱讀 1546

)arraylist 和 linkedlist 都屬於單列集合中list介面的實現類

arraylist 底層是陣列結構

linkedlist 底層是鍊錶結構

儲存有序,有索引,可以儲存重複的

都是list介面的實現類

arraylist底層是陣列結構:查詢快,修改快,增刪慢

linkedlist底層是鍊錶結構:查詢慢,修改慢,增刪快

arraylist因為陣列結構有索引,可以根據索引快速定位,所以查詢快,修改快

增加元素時,arraylist如果底層陣列存不下,會進行以下三步:

1.根據陣列原來的大小,擴容1.5倍大小的新陣列

2.將原陣列中的資料拷貝到新陣列

3.再增加新元素

刪除元素時,牽一髮而動全身

被刪元素後續的元素整體向前移動

linkedlist是鍊錶結構

每次增刪時, 不會影響到其他大量元素,只在小範圍內操作

但查詢和修改元素時需要詢問元素,逐個進行匹配。雖然有索引,但是查詢的時候故意不用索引!

查詢元素時,會先判斷要查詢的元素離頭近還是離尾近再查詢

若查詢和修改業務比較多,推薦使用arraylist

若增刪比較多,推薦使用linkedlist

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...

LinkedList和ArrayList的區別

對於集合collection下的list介面,有兩個實現類,arraylist和linkedlist,那麼他們兩個有什麼區別呢。arraylist的底層由陣列實現,而linkedlist的底層由雙向鍊錶實現,底層的不同才是他們區別的根源。然而因為他們繼承於同乙個父介面,他們的很多方法都是相同的。關於...

ArrayList和LinkedList的面試題

一 arraylist為什麼是執行緒不安全的?arraylist在新增乙個元素的時候,它可能會有兩步來完成 1.在 items size 的位置存放此元素 2.增大 size 的值。在單執行緒執行的情況下,如果 size 0,新增乙個元素後,此元素在位置 0,而且 size 1 而如果是在多執行緒情...