ArrayList和LinkedList的區別

2021-10-05 09:18:24 字數 620 閱讀 3850

array(陣列)是基於索引(index)的資料結構,它使用索引在陣列中搜尋和讀取資料是很快的。

array獲取資料的時間複雜度是o(1),但是要刪除資料卻是開銷很大,因為需要重排陣列中的所有資料,(因為刪除資料以後,需要把後面所有的資料前移)

缺點:陣列初始化必須指定初始化的長度,否則報錯。

例如:

int a = new int[4];//推薦使用int 這種方式初始化

int c = ;//長度:4,索引範圍:[0,3]

list是乙個有序的集合,可以包含重複的元素,提供了按索引訪問的方式,它繼承collection。

list有兩個重要的實現類:arraylist和linkedlist。

arraylist:可以看作是能夠自動增長容量的陣列;

arraylist的toarray方法返回乙個陣列;

arraylist的aslist方法返回乙個列表;

arraylist底層的實現是array,陣列擴容實現。

linkedlist是乙個雙向鍊錶,在新增和刪除元素時具有比arraylist更好的效能,但是在get與set方面弱於arraylist,此等對比都是指資料量很大或者操作很頻繁的情況。

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