C 六種集合效能比較

2022-02-06 16:59:24 字數 1185 閱讀 9800

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

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 反射效能比較

int testtimes 10000000 測試次數,可自行調節看效果 region 傳統方式反射 console.writeline 一千萬次反射呼叫效能比較 trywatch.stop console.writeline testtimes.tostring times 傳統invoke方式反...

Java 中常用集合效能比較

list 集合 list 有順序的,元素可以重複 遍歷 for 迭代 排序 comparable comparator collections.sort arraylist 底層用陣列實現的list 特點 查詢效率高,增刪效率低 輕量級 執行緒不安全 遍歷 arraylistal new array...

五種內部排序演算法效能比較 C

五種內部排序演算法效能比較 1.直接插入排序演算法 將乙個待排序的記錄插入到若干個已排好序的有序記錄中的適當位置,從而得到乙個新的 記錄數增加1的有序資料序列,直到插入完成。在最開始,整個有序資料序列只有乙個資料,當全部資料插入完畢後,整個資料序列有序,並且在最後乙個資料插入有序資料序列之前,每乙個...