集合概述 集合簡單的說就是數組的升級版。他可以動態的對集合的長度(也就是集合內最大元素的個數)進行定義和維護! ArrayList ArrayList非常類似於數組。也有人稱他為數組列表,它的容量可以根據需要進行動態擴充,而它的索引也會根據集合容量的擴展而重新分配和調整。也就是說ArrayList集...
集合概述
集合簡單的說就是數組的升級版。他可以動態的對集合的長度(也就是集合內最大元素的個數)進行定義和維護!
ArrayList
ArrayList非常類似於數組。也有人稱他為數組列表,它的容量可以根據需要進行動態擴充,而它的索引也會根據集合容量的擴展而重新分配和調整。也就是說ArrayList集合中的元素的下標是不確定的、可變的。
ArrayList類屬於System.Collections命名空間,這個命名空間包含介面和類,這些介面和類定義各種對象(如列表、隊列、位數組、哈希表和字典)的集合。
語法:
Using System.Collections;//導入命名空間 //定義ArrayList對象 ArrayList ArrayList集合名稱=new ArrayList(【長度】);
ArrayList的常用方法和屬性
屬性名稱 | 說明 |
Count | 獲取ArrayList中實際包含的元素數 |
返回值類型 | 方法名稱 | 說明 |
int | add(Object Value) | 將對象添加到ArrayList的結尾處 |
Void | RemoveAt(int index) | 移除ArrayList指定索引處的元素 |
Void | Remove(Object Value) | 從ArrayList中移除特定的對象 |
Void | Clear() | 從ArrayList中移除所有的元素 |
HashTable
在ArrayList中我們可以通過索引訪問集合中的元素,但是當集合內的元素索引頻繁變化時要找出每個元素的位置(索引)就變得非常麻煩你了,
C#提供了一種叫HashTable的數據結構,通常稱他為哈希表也有人稱他為“字典”,給它起字典這個名字是因為它和字典非常類似,都是通過一個單詞查找出有關此單詞的更多信息,HashTable是通過鍵(Key)對值(Value)來組織數據的
HashTable的常用屬性和方法
屬性 | 說明 |
count | 獲取包含在HashTable中鍵值對的數目 |
Keys | 獲取包含HasTable中鍵的集合 |
Values | 獲取包含HasTable中值得集合 |
返回值類型 | 方法名稱 | 說明 |
void | Add(Object Key,Object Value) | 將帶有指定鍵和值得元素添加到HashTable中 |
Void | Remove(Object Key) | 從HashTable中移除帶有特定鍵的元素 |
Void | Clear() | 清除HashTable中的所有元素 |
泛型和泛型集合
通過ArrayList和HashTable存儲的數據都會轉換成Object類型,這就意味著它可以在一個集合中存儲不同的類型元素,在遍歷集合時就有可能引發強制類型轉換錯誤的問題。而泛型集合是類型安全的,在定義時就先定了集合中的元素類型,下麵將詳細講解泛型和泛型集合。
泛型
泛型是C#2.0 中的一個新特性,泛型引入了一個概念:類型參數,通過使用類型參數(T)減少了運行時強制類型轉換或裝箱拆箱操作的風險,同過泛型可以最大限度的重用代碼,保護類型安全及提高性能,它的最常見應用是創建集合類,可以約束集合類中的元素類型。個比較典型的泛型集合是LIst<T>和Dictionary<K,V>,下麵進行詳細講解、
泛型集合
在System.Collections.Generic命名空間中定義了去多泛型集合類這些類可以代替上面的ArrayList
定義一個List<T>集合的語法如下:
List <T> 集合名稱=new List<T>();
“<T>”中的T可以對集合中的元素類型進行約束,T表名集合管理的元素類型。
List<T>和ArrayList的區別
- List<T>對保存的元素類型做約束,ArrayList可以保存任何類型的元素
- list<T>保存值類型元素不會進行裝箱拆箱操作而ArrayList會
泛型集合Dictionary<K,V>
泛型集合Dictionary可以代替上面的HashTable
定義一個泛型集合Dictionary<K,V>的語法
Dictionary<K,V> 集合名稱=new Dictionary<K,V>();
在”<K,V>”中K表示集合中Key的類型,V表示Value的類型,他們的含義和List<K,V>是相同的
- Dictionary<K,V>對保存的元素類型做約束,HashTablet可以保存任何類型的元素
- Dictionary<K,V>保存值類型元素不會進行裝箱拆箱操作而HashTablet會
泛型類
在集合中使用泛型只是泛型多種應用的一種,在類、方法等方面已有泛型的應用
定義一個泛型類的語法如下:
public class 類名<T> { //.... }
T指類型參數,代表具體的數據類型,可以是值類型也可以是引用類型