程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# SortedList 和 SortedDictionary集合類型

C# SortedList 和 SortedDictionary集合類型

編輯:C#入門知識

System.Collections.SortedList 類、System.Collections.Generic.SortedList 泛型類和 System.Collections.Generic.SortedDictionary 泛型類類似於 Hashtable 類和 Dictionary 泛型類,因為它們也實現 IDictionary 接口,但是它們以基於鍵的排序順序維護元素,沒有哈希表的 O(1) 插入和檢索特性。這三個類具有若干共性:

 
  • 三個類都實現 System.Collections.IDictionary 接口。兩個泛型類還實現 System.Collections.Generic.IDictionary 泛型接口。

  • 每個元素是一個鍵/值對,以進行枚舉。

    Note注意

    非泛型 SortedList 類在被枚舉時返回 DictionaryEntry 對象,而兩個泛型類則返回 KeyValuePair 對象。

  • 元素按照 System.Collections.IComparer 實現(對於非泛型 SortedList)或 System.Collections.Generic.IComparer 實現(對於兩個泛型類)排序。

  • 每個類提供了返回僅包含鍵或僅包含值的集合的屬性。

下表列舉兩個排序的列表類與 SortedDictionary 類之間的一些區別。

SortedList 非泛型類和 SortedList 泛型類 SortedDictionary 泛型類

返回鍵和值的屬性是有索引的,從而允許高效的索引檢索。

無索引的檢索。

檢索的運算復雜度為 O(log n)。

檢索的運算復雜度為 O(log n)。

插入和移除的運算復雜度一般為 O(n);但是,對於已經處於排序順序的數據,插入操作的運算復雜度為 O(1),因此每個元素都被添加到列表的末尾。(這假設不需要調整大小。)

插入和移除的運算復雜度為 O(log n)。

SortedDictionary 使用更少的內存。

SortedList 非泛型類和 SortedList 泛型類使用更多內存。

Note注意

對於包含自己的鍵的值(例如,包含雇員 ID 編號的雇員記錄),可以通過從 KeyedCollection 泛型類派生創建帶鍵的集合,該集合具有列表的一些特征和字典的一些特征。

 

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved