C 的6種常用集合類大比拼

2021-04-18 03:48:43 字數 2147 閱讀 6561

一.先來說說陣列的不足(也可以說集合與陣列的區別):

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.陣列要宣告元素的型別,集合...