C#中SortedList 和 SortedDictionary集合型別
a: System.Collections.Generic的SortedList
b.: System.Collections.Generic的SortedDictionary
1.a與b的作用:
能夠儲存資料並自動按照key進行排序。
2.定義與使用:
SortedDictionary<key,value>
SortedList<key,value>
其中key與排序有關,value為值且可以為值或引用型別。
// SortedDictionary
SortedDictionary<int, string> sDictionary = new SortedDictionary<int, string>();
sDictionary.Add(3, "cc");
sDictionary.Add(4, "dd");
sDictionary.Add(1, "aa");
sDictionary.Add(2, "bb"); // 此處可以發現sDictionary已經自動按key進行了排序
// 得到SortedDictionary的所有key的集合
SortedDictionary<int, string>.KeyCollection keys = sDictionary.Keys;
// 得到SortedDictionary的所有value的集合
SortedDictionary<int, string>.ValueCollection values = sDictionary.Values;
//SortedList
SortedList<int, string> sList = new SortedList<int, string>();
sList.Add(3, "cc");
sList.Add(4, "dd");
sList.Add(1, "aa");
sList.Add(2, "bb");
// 此處可以發現sList已經自動按key進行了排序
// 得到SortedList的所有key的集合
IList<int> keysList = sList.Keys;
// 得到SortedList的所有value的集合
IList<string> valuesList = sList.Values;
3.二者區別
SortedList 泛型類是具有 O(log n) 檢索的二進位制搜尋樹,其中 n 是字典中元素的數目。就這一點而言,它與 SortedDictionary 泛型類相似。這兩個類具有相似的物件模型,並且都具有 O(log n
-
SortedList 使用的記憶體比 SortedDictionary 少。
-
SortedDictionary 可對未排序的資料執行更快的插入和移除操作,它的運算複雜度為 O(log n),而 SortedList 的運算複雜度為 O(n)。
-
如果使用排序資料一次性填充列表,則 SortedList 比 SortedDictionary 快。
4.與List相比的優勢是能夠自動排序
List的排序請看另一篇文章。