黑馬程式設計師 C 中四個常用集合

2021-06-21 05:16:48 字數 2509 閱讀 5801

---------------------- 

asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

1.arraylist

arraylist類似於陣列,有人也稱它為陣列列表。arraylist可以動態維護,而陣列的容量是固定的。

它的索引會根據程式的擴充套件而重新進行分配和調整。和陣列類似,它所儲存的資料稱為元素,它所儲存的元素數就是它的容量。預設初始容量為0,在使用它時,需引入命名空間system.connections;以下**可以定義乙個arraylist:

using system.collections;

//建立容量為0的arraylist物件

arraylist mylist = new arraylist();

//建立容量為5的arraylist物件

arraylist mylist = new arraylist();

//獲取物件中實際包含的元素數

int num = mylist.count();

arraylist通過add()方法新增元素,其方法返回乙個int型別的值,這個值代表所新增的元素在集合中的索引。

引數:如果向arraylist中新增的元素是值型別,那麼這些元素就會自動裝箱處理轉換為object引用型別,然後儲存,所以arraylist中的所有元素都是物件的引用。

刪除arraylist中的元素有三種方法,分別為:

物件名.romoveat(int index);

物件名.romove(object value);

物件名.clear();(這種方法會將集合中的所有元素刪除,俗稱"清空"~~~)

2.hashtable

c# /提供了一種稱為hashtable的資料結構,通常稱為雜湊表,有的人稱它為"字典".hashtable的資料是通過鍵(key)和值(value)來組織的,同arraylist一樣,它也屬於system.collections命名空間中,它所存放的每個元素都是鍵/值對.以下為hashtable的常用方法和屬性:

屬性名稱:count 說明:獲取包含在hashtable中鍵/值對的數目

屬性名稱:keys 說明:獲取包含在hashtable中鍵的集合

屬性名稱:values 說明:獲取包含在hashtable中值的集合

方法名稱:add(object key,object value)說明:將帶有指定鍵和值的元素新增到hashtable中

方法名稱:remove(object key)說明:從hashtable中移除帶有特定鍵的元素

方法名稱:clear() 說明:從hashtable中移除所有元素

和arraylist不同,訪問hashtable元素時可以直接通過鍵名來獲取具體值,同樣,由於值型別是object.所以當得到乙個值時也需要通過型別轉換得到指定型別的物件.

3.泛型集合:list

在介紹泛型集合前,我們有必要來了解了解什麼是泛型:

泛型是c#2.0中的乙個新特性。泛型引入了乙個新概念:型別引數。通過使用型別引數(t),減少了執行時強制轉換成裝箱操作的風險。通過泛型集合可以最大限度的重用**、保護型別的安全及提高效能。

定義乙個list泛型集合的方法如下:

list 物件名 = new list();

list新增元素、獲取元素、刪除元素以及遍歷和arraylist用法都是類似的,但list保障了型別的安全性。在獲取元素時無需進行型別轉換.下面我們把list和arraylist作以比較

不用點:list對所儲存元素做型別約束,而arraylist可以增加任意型別。新增、讀取值型別元素list無需拆箱裝箱,而arraylist需要做拆箱、裝箱處理。

相同點:通過索引訪問集合中的元素,新增、刪除元素方法相同

4.泛型集合dictionary

它具有泛型的全部特性,編譯時檢查型別約束,獲取元素時無需型別轉換,並且它儲存資料的方式和hashtable類似。也是通過key/value對元素儲存的。定義語法為:

dictionary物件名 = new dictionary

中的k表示集合中key的型別,v表示value的型別,它的含義和list是相同的.例如:

dictionary engineers = new dictionary();

在這個集合中,key型別是string型別,value是se型別。下面我們把dictionary和hashtable作以比較:

不同點:dictionary對所儲存的元素做型別約束,而hashtable可以增加任何型別。dictionary新增、讀取值型別元素無需拆箱、裝箱,而hashtable需要做拆箱、裝箱處理

相同點:通過key獲取value,新增、刪除、遍歷元素方法相同。

---------------------- 

asp.net+unity開發

、.net培訓

、期待與您交流! ----------------------

黑馬程式設計師 集合

collection list 元素是有序的,元素可以重複。因為該集合體系有索引。arraylist 底層的資料結構使用的是陣列結構。特點 查詢速度很快。但是增刪稍慢。執行緒不同步。linkedlist 底層使用的鍊錶資料結構。特點 增刪速度很快,查詢稍慢。執行緒不同步。vector 底層是陣列資料...

黑馬程式設計師 集合

asp.net unity開發 net培訓 期待與您交流!1.集合類 為什麼會出現集合類?面對物件語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。集合類的特點 集合只用於儲存物件,集合的長度是可變的,集合可以儲存不同型別的物件。集合...

黑馬程式設計師 集合

集合 string類 字串是乙個特殊的物件。字串一旦初始化就不可以被改變。string str abc string str1 new string abc 基本資料型別物件包裝類 將基本資料型別封裝成物件的好處在於可以在 物件中定義更多的功能方法操作該資料。常用的操作之一 用於基本資料型別與字串 ...