C 中的集合

2021-09-28 16:17:47 字數 2062 閱讀 7813

集合(collection)類是專門用於資料儲存和檢索的類。這些類提供了對棧(stack)、佇列(queue)、列表(list)和雜湊表(hash table)的支援。大多數集合類實現了相同的介面。

集合(collection)類服務於不同的目的,如為元素動態分配記憶體,基於索引訪問列表項等等。這些類建立 object 類的物件的集合。在 c# 中,object 類是所有資料型別的基類

目前主要所學有一下幾種

1)arraylist

arraylist是list介面的可變陣列非同步實現,並允許包括null在內的所有元素,相當於list < object>

類似於陣列,稱陣列列表,arraylist可以動態維護,可以自動擴容。

命名空間:using system.collections

屬性:count            獲取arraylist的元素個數

方法add (object  value)              新增元素

removeat(int index)       移除指定索引處元素

remove(object  value)        移除指定元素

clear()             清除所有元素

2)list < t >

泛型的list 類是乙個不限長度的集合型別,它內部實際就是乙個陣列,初始長度是4,每次陣列到達限制,就會把現有容量翻倍,它提供用於對集合進行搜尋、排序和操作等方法

list是陣列鍊錶,陣列鍊錶訪問快,複雜度o(1),但是新增刪除複雜度o(n)

list和arraylist()的區別:

不同點:

listarraylist()

1:對所儲存的元素進行型別的約束                                      可以增加任何型別

2:新增/讀取值型別元素的無須拆箱和裝箱                             新增/讀取值型別元素的需要拆箱和裝箱  

相同點:

1:通過索引訪問集合中的元素

2:新增的元素方法相同

3:刪除元素的方法相同

3)dictionary < k, v>

儲存鍵值對的關聯性集合,查詢等操作速度很快,因為它的時間複雜度是o(1)

,單執行緒中推薦使用dictionary,有泛型優勢,且讀取速度較快,容量利用更充分.

4)linkedlist

linkedlist是list介面的雙向鍊錶非同步實現,並允許包括null在內的所有元素。

底層的資料結構是基於雙向鍊錶的,

linkedlist是指標鍊錶,指標鍊錶訪問複雜度是o(n),但是新增刪除很快o(1),如果對這個集合在中間的新增刪除操作非常頻繁的話,就建議使用linkedlist。

5)hashtable

hashtable是system.collections命名空間提供的乙個容器,用於處理和表現類似key/value的鍵值對.

稱雜湊表,通過鍵(key)和值(value)

屬性:count        hashtable中元素個數

keys          hashtable中鍵的集合

value        hashtable中值得集合

方法:add(object keys,object value)    新增元素

remove (object value)                  移除指定元素

clear()                                          清除所有元素

dictionary和hashtable的區別:

不同點:

dictionaryhashtable

1:對所儲存的元素進行約束                                                 可以增加任何型別

2:新增/讀取值型別元素的無須拆箱和裝箱                              新增/讀取值型別元素的需要拆箱和裝箱  

相同點:

1:通過key獲取value

2:新增的元素方法相同

3:刪除元素的方法相同

4:遍歷方法相同

C 中的集合

集合 集合包括 arraylist,hashtable 雜湊表 list,dictionary 字典 1 arraylist 定義 arraylist mylist new arraylist arraylist 可變長度陣列,使用類似於陣列 新增資料 arraylist array new arr...

C 中的集合

陣列的長度不可變,在定義的時候已經被固定 2.陣列裡的元素的型別必須統一,不能存放多個型別的資料.arraylist 動態陣列 陣列的例項化 arraylist list new arraylist 可以使用集合的初始化器快速的賦值 arraylist list new arraylist 集合的操...

C 中的集合

c 中有很多集合型別,比如list,dictionary,這些是我們常用的,但也有一些少眾的場合使用的集合 特徵型別的readonly集合,sort集合 封裝特定演算法型別的集合 queue 先進先出 stack 後進先出 linkedlist 鍊錶,每個元素承上啟下 這些集合都是在特定的場合下使用...