集合(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 鍊錶,每個元素承上啟下 這些集合都是在特定的場合下使用...