)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 而如果是在多執行緒情...