一.先來說說陣列的不足(也可以說集合與陣列的區別):
1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的
2.陣列要宣告元素的型別,集合類的元素型別卻是object.
3.陣列可讀可寫不能宣告唯讀陣列。集合類可以提供readonly方法以唯讀方式使用集合。
4.陣列要有整數下標才能訪問特定的元素,然而很多時候這樣的下標並不是很有用。集合也是資料列表卻不使用下標訪問。很多時候集合有定製的下標型別,對於佇列和棧根本就不支援下標訪問!
二.下面講述6種常用集合
1.arraylist類
2.stack類
棧,後進先出。push方法入棧,pop方法出棧。
3.queue類
佇列,先進先出。enqueue方法入佇列,dequeue方法出佇列。
4.hashtable類
雜湊表,名-值對。類似於字典(比陣列更強大)。雜湊表是經過優化的,訪問下標的物件先雜湊過。如果以任意型別鍵值訪問其中元素會快於其他集合。 gethashcode()方法返回乙個int型資料,使用這個鍵的值生成該int型資料。雜湊表獲取這個值最後返回乙個索引,表示帶有給定雜湊的資料項 在字典中儲存的位置。
5.sortedlist類
與雜湊表類似,區別在於sortedlist中的key陣列排好序的。
6.namevaluecollection類
官方給namevaluecollection定義為特殊集合一類,在system.collections.specialized下。
system.collections.specialized下還有hybriddicionary類,建議少於10個元素用hybriddicionary,當元素增加會自動轉為hashtable。
system.collections.specialized下還有hybriddicionary類,字串集合。
system.collections.specialized下還有其他類大家可以各取所需!
言歸正轉主要說namevaluecollection,hashtable 和 namevaluecollection很類似但是他們還是有區別的,hashtable 的key是唯一性,而namevaluecollection則不唯一!
C 的6種常用集合類
二.下面講述6種常用集合 1.arraylist類 2.stack類 棧,後進先出。push方法入棧,pop方法出棧。3.queue類 佇列,先進先出。enqueue方法入佇列,dequeue方法出佇列。4.hashtable類 雜湊表,名 值對。類似於字典 比陣列更強大 雜湊表是經過優化的,訪問下...
c 中常用集合類和集合介面之集合類系列
常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...
c 中常用集合類和集合介面之集合類系列
常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...