Array和List的異同

2021-08-06 00:25:04 字數 1096 閱讀 7740

array和list的異同

array的建立格式是:型別+[ ]。

eg:string array = new string[5];

可以在建立時限定長度,但在後面使用中不可以更改。直接賦值{不適用於二維陣列}、引用賦值。只能選其一,且不能重複賦值。可以放基本型別資料和物件。

list建立格式是:型別《泛型》 。

eg:listlist = new linkedlist< >();(由於李氏替換原則,所以後面的string可以省略。)

不能在建立時限定長度,但可以在以後的使用中更改。通過:.add(追加)、.set(更改)來賦值。不能放基本型別資料。

array:

是基於索引(index)的資料結構,它使用索引在陣列中搜尋和讀取資料是很快的。array獲取資料的時間複雜度是o(1),但是要刪除資料卻是開銷很大的,因為這需要重排陣列中的所有資料。

list:

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

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

arraylist:

可以看作是能夠自動增長容量的陣列,利用arraylist的toarray返回乙個陣列;arrays.aslist返回乙個列表

linkedlist:

相對於arraylist,linkedlist插入是更快的。因為linkedlist不像arraylist一樣,不需要改變陣列的大小,也不需要在陣列裝滿的時候要將所有的資料重新裝入乙個新的陣列,這是arraylist最壞的一種情況,時間複雜度是o(n),而linkedlist中插入或刪除的時間複雜度僅為o(1)。arraylist在插入資料時還需要更新索引(除了插入陣列的尾部)。

類似於插入資料,刪除資料時,linkedlist也優於arraylist。

關於linkedlist和arraylist的選用:

1) 你的應用不會隨機訪問資料。因為如果你需要linkedlist中的第n個元素的時候,你需要從第乙個元素順序數到第n個資料,然後讀取資料。

2) 你的應用更多的插入和刪除元素,更少的讀取資料。因為插入和刪除元素不涉及重排資料,所以它要比arraylist要快。

Array和ArrayList的異同點

最近研究了一下c 中的array及arraylist類之間的異同,總結了以下幾點 array和arraylist的區別 1.array型別的變數在宣告的同時必須進行例項化 至少得初始化陣列的大小 而arraylist可以只是先宣告。如 int array new array 3 或 int arra...

Array和ArrayList的異同點

array和arraylist的異同點 1 不同點 1 array只能儲存同構的物件,arraylist可以儲存異構的物件 2 在clr託管對中的存放方式中,array是始終是連續存放的,arraylist的存放不一定連續 3 array型別的變數在宣告的同時必須進行例項化 arraylist可以只...

Array和ArrayList的異同點

相信陣列是大家在程式設計最常使用的,不論任何語言都存在陣列這樣的資料結構,由於c 語言是完全物件導向的,所以在c 中的陣列也是物件,實際上就是array類的例項,array類的使用可以說是使用最頻繁的,只是大家在使用時都沒太在意,如在建立陣列int時實際上就建立了乙個array類物件的例項。最近我仔...