《.NET 性能優(yōu)化》—第五章 集合

集合類(lèi)

請(qǐng)避免使用 System.Collections 命名空間中的類(lèi)型。 推薦使用泛型版本和并發(fā)版本的集合,因?yàn)樗鼈兊念?lèi)型安全性很高,并且還經(jīng)過(guò)了其他改進(jìn)。

System.Collections.Generic 命名空間包含定義泛型集合的接口和類(lèi),用戶可以使用泛型集合來(lái)創(chuàng)建強(qiáng)類(lèi)型集合,這種集合能提供比非泛型強(qiáng)類(lèi)型集合更好的類(lèi)型安全性和性能。

集合 描述
ArrayList,List<T> 列表,List<T> 是 ArrayList 的泛型形式。
Stack<T>
Queue<T> 隊(duì)列
HashSet<T>,SortedSet<T> 集,包含不重復(fù)元素的集合成為“集(set)”.其中,HashSet<T> 集合包含不重復(fù)元素的無(wú)序列表;SortedSet<T> 集合包含不重復(fù)元素的有序列表。
LinkedList<T> 雙向鏈表
Dictionary<TKey, TValue> 字典,允許按照某個(gè)鍵來(lái)訪問(wèn)元素。字典也稱為映射或散列表。字典的主要特征是能根據(jù)鍵快速查找值。也可以自由添加和刪除元素,這有點(diǎn) List<T> 類(lèi),但沒(méi)有在內(nèi)存中移動(dòng)后續(xù)元素的性能開(kāi)銷(xiāo)。
SortedDictionary<TKey, TValue> 有序字典,是一個(gè)二叉搜索樹(shù),其中的元素根據(jù)鍵來(lái)排序。該鍵類(lèi)型必須實(shí)現(xiàn) IComparable<TKey> 接口。
SortedList<TKey, TValue> 有序鏈表,該類(lèi)按照鍵給元素排序。

線程安全集合

下表列出了 System.Collections.Concurrent 命名空間中的集合類(lèi)型。

類(lèi)型 說(shuō)明
BlockingCollection<T> 為實(shí)現(xiàn) IProducerConsumerCollection<T> 的所有類(lèi)型提供限制和阻止功能。 有關(guān)詳細(xì)信息,請(qǐng)參閱 BlockingCollection 概述
ConcurrentDictionary<TKey,TValue> 鍵值對(duì)字典的線程安全實(shí)現(xiàn)。
ConcurrentQueue<T> FIFO(先進(jìn)先出)隊(duì)列的線程安全實(shí)現(xiàn)。
ConcurrentStack<T> LIFO(后進(jìn)先出)堆棧的線程安全實(shí)現(xiàn)。
ConcurrentBag<T> 無(wú)序元素集合的線程安全實(shí)現(xiàn)。
IProducerConsumerCollection<T> 類(lèi)型必須實(shí)現(xiàn)以在 BlockingCollection 中使用的接口。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • C#集合 有兩種主要的集合類(lèi)型:泛型集合和非泛型集合。 泛型集合被添加在 .NET Framework 2.0 中...
    OctOcean閱讀 928評(píng)論 0 3
  • 數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織、管理數(shù)據(jù)的方式 數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合 ...
    JunChow520閱讀 3,819評(píng)論 0 4
  • 對(duì)象的創(chuàng)建與銷(xiāo)毀 Item 1: 使用static工廠方法,而不是構(gòu)造函數(shù)創(chuàng)建對(duì)象:僅僅是創(chuàng)建對(duì)象的方法,并非Fa...
    孫小磊閱讀 2,182評(píng)論 0 3
  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,559評(píng)論 0 4
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,947評(píng)論 0 9

友情鏈接更多精彩內(nèi)容