Ch17.集合和數(shù)據(jù)結(jié)構(gòu)_第1頁(yè)
Ch17.集合和數(shù)據(jù)結(jié)構(gòu)_第2頁(yè)
Ch17.集合和數(shù)據(jù)結(jié)構(gòu)_第3頁(yè)
Ch17.集合和數(shù)據(jù)結(jié)構(gòu)_第4頁(yè)
Ch17.集合和數(shù)據(jù)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第17章 集合和數(shù)據(jù)結(jié)構(gòu)集合和數(shù)據(jù)結(jié)構(gòu)的基本概念A(yù)rrayList的基本操作List的基本操作Hashtable集合類型的基本操作Dictionary集合類型的基本操作SortedList集合類型的基本操作SortedList集合類型的基本操作SortedDictionary集合類型的基本操作Queue集合類型的基本操作Stack集合類型的基本操作HashSet集合類型的基本操作BitArray集合類型的基本操作BitVector32集合類型的基本操作NameValueCollection集合類型的基本操作StringDictionary集合類型的基本操作StringCollection集合類

2、型的基本操作C#集合和數(shù)據(jù)結(jié)構(gòu)概述 圖17-1 System.Collections 命名空間的繼承關(guān)系 圖17-2 System.Collections.Generic命名空間的繼承關(guān)系 圖17-3 System.Collections.Specialized命名空間的繼承關(guān)系17.2 列表類集合類型 列表類集合類型基于 IList 接口,集合中的每個(gè)元素都只包含一個(gè)值。列表類集合類型包括: Array (請(qǐng)參考本書(shū)5.1.5) ArrayList集合類型 List集合類型17.2.1 ArrayList ArrayList或List用于構(gòu)建復(fù)雜的數(shù)組或列表集合。相對(duì)于Array的容量固定性

3、,ArrayList或List的容量可根據(jù)需要自動(dòng)擴(kuò)充。ArrayList或List還提供添加、插入或移除某一范圍元素的方法 表17-1 ArrayList類的主要成員 【例例17.1】使用ArrayList類操作數(shù)組列表17.2.2 List List表示可通過(guò)索引訪問(wèn)的對(duì)象的強(qiáng)類型列表,提供用于對(duì)列表進(jìn)行搜索、排序和操作的方法。 List類是對(duì)應(yīng)于 ArrayList 的泛型類。該類使用大小可按需動(dòng)態(tài)增加的數(shù)組實(shí)現(xiàn) IList泛型接口 表17-2 List泛型類的主要成員 【例例17.2】使用List泛型類操作列表17.3 字典類集合類型 字典類集合類型基于IDictionary / ID

4、ictionary 接口,集合中的每個(gè)元素都包含鍵/值對(duì)。字典類集合類型包括: Hashtable集合類型 Dictionary 集合類型 SortedList集合類型 SortedList集合類型 SortedDictionary 集合類型17.3.1 Hashtable Hashtable表示鍵/值(key/value)對(duì)的集合,這些鍵/值對(duì)根據(jù)鍵的哈希代碼進(jìn)行組織 Hashtable中key和value鍵值均為object類型 Hashtable集合中每個(gè)鍵(key)必須是唯一的,并且添加后,鍵(key)就不能更改。鍵(key)不能為 null 引用,但值(value)可以 表17-3

5、Hashtable類的主要成員 【例例17.3】使用Hashtable類操作數(shù)據(jù)集合17.3.2 Dictionary Dictionary泛型類表示鍵/值(key/value)對(duì)的集合。其中,TKey表示字典中的鍵的類型,TValue表示字典中的值的類型 Dictionary泛型類提供了從一組鍵到一組值的映射 Dictionary集合中的每個(gè)元素都是一個(gè)KeyValuePair結(jié)構(gòu),由一個(gè)值及其相關(guān)聯(lián)的鍵組成 表17-4 Dictionary泛型類的主要成員 【例例17.4】使用Dictionary泛型類操作數(shù)據(jù)集合17.3.3 SortedList SortedList表示鍵/值(key/

6、value)對(duì)的集合 SortedList是泛型類,TKey表示字典中的鍵的類型,TValue表示字典中的值的類型 SortedList集合中的每個(gè)元素都是一個(gè)可作為 DictionaryEntry 對(duì)象進(jìn)行訪問(wèn)的鍵/值對(duì) SortedList集合中每個(gè)鍵(key)必須是唯一的。鍵不能為 null 引用,但值可以 表17-5 SortedList類的主要成員 【例例17.5】使用SortedList類操作列表17.3.4 SortedList SortedList泛型類表示鍵/值(key/value)對(duì)的集合,以基于鍵的排序順序維護(hù)元素,并可按照鍵和索引訪問(wèn)。其中,TKey表示字典中的鍵的類型

7、,TValue表示字典中的值的類型 SortedList泛型類提供了從一組鍵到一組值的映射。SortedList集合中的每個(gè)元素都是一個(gè)KeyValuePair結(jié)構(gòu),由一個(gè)值及其相關(guān)聯(lián)的鍵組成。通過(guò)鍵可以快速檢索值。SortedList中的每個(gè)鍵必須是唯一的。鍵(key)不能為空,但值(value)可以 表17-6 SortedList泛型類的主要成員 【例例17.6】使用SortedList類操作列表17.3.5 SortedDictionarySortedDictionary泛型類表示鍵/值(key/value)對(duì)的集合,以基于鍵的排序順序維護(hù)元素。其中,TKey表示字典中的鍵的類型,TV

8、alue表示字典中的值的類型SortedDictionary泛型類提供了從一組鍵到一組值的映射。SortedDictionary集合中的每個(gè)元素都是一個(gè)KeyValuePair結(jié)構(gòu),由一個(gè)值及其相關(guān)聯(lián)的鍵組成。通過(guò)鍵可以快速檢索值。SortedDictionary 中的每個(gè)鍵必須是唯一的。鍵(key)不能為空,但值(value)可以表17-7 SortedDictionary泛型類的主要成員【例例17.7】使用SortedDictionary泛型類操作數(shù)據(jù)集合17.4 隊(duì)列集合類型 Queue類表示對(duì)象的先進(jìn)先出(FIFO,F(xiàn)irst In First Out)集合。存儲(chǔ)在 Queue 中的對(duì)

9、象在一端(Queue 的結(jié)尾處)插入,從另一端(Queue的開(kāi)始處)移除 表17-8 Queue類的主要成員 【例例17.8】使用Queue類操作數(shù)據(jù)集合 圖17-4 隊(duì)列(先進(jìn)先出)操作示意圖17.5 堆棧集合類型 Stack類表示對(duì)象的簡(jiǎn)單的后進(jìn)先出(LIFO,Last In First Out)非泛型集合。Stack采用循環(huán)緩沖區(qū)方式實(shí)現(xiàn)對(duì)象的增刪 表17-9 Stack類的主要成員 【例例17.9】使用Stack類操作數(shù)據(jù)集合 圖17-5 堆棧(后進(jìn)先出)操作示意圖17.6 HashSet集合類型 HashSet泛型類是set 集合,HashSet泛型類實(shí)現(xiàn) ICollection 接

10、口和 ICollection泛型接口。集是一組不重復(fù)出現(xiàn)且無(wú)特定順序的元素 HashSet泛型類是set 集合,HashSet泛型類實(shí)現(xiàn) ICollection 接口和 ICollection泛型接口。集是一組不重復(fù)出現(xiàn)且無(wú)特定順序的元素 表17-10 HashSet泛型類的主要成員 【例例17.10】使用HashSet泛型類操作數(shù)據(jù)集合17.7 位集合 位集合是其元素為位標(biāo)志的集合,其元素都是一位,而不是一個(gè)對(duì)象 位集合類型包括BitArray 類和 BitVector32結(jié)構(gòu)17.7.1 BitArray BitArray集合類是管理位值的壓縮數(shù)組,其容量可通過(guò)Length 屬性來(lái)控制。使

11、用一個(gè)整數(shù)索引訪問(wèn)此集合中的元素。此集合中的索引從零開(kāi)始 表17-11 BitArray類的主要成員 【例例17.11】使用BitArray類操作數(shù)據(jù)集合17.7.2 BitVector32 BitVector32 類提供的功能與 BitArray 基本相同,但性能更高。BitVector32 的性能之所以較高是因?yàn)樗侵殿愋?,所以在堆棧上分配;?BitArray 是引用類型,所以在堆上分配 表17-12 BitVector32類的主要成員 【例例17.12】使用BitVector32類操作數(shù)據(jù)集合17.8 專用集合 專用集合描述諸如 NameValueCollection、StringDi

12、ctionary 和 StringCollection 等特殊用途的集合 NameValueCollection 基于 NameObjectCollectionBase;但 NameValueCollection 接受一鍵多值,而 NameObjectCollectionBase 只接受一鍵一值。 StringDictionary和StringCollection是System.Collections.Specialized 命名空間中的強(qiáng)類型集合,兩者均包含完全是字符串的值17.8.1 NameValueCollection NameValueCollection類表示可通過(guò)鍵或索引訪問(wèn)的關(guān)

13、聯(lián) String 鍵和 String 值的集合。NameValueCollection類每個(gè)元素都是一個(gè)鍵/值對(duì),可用于標(biāo)頭、查詢字符串和窗體數(shù)據(jù) 表17-13 NameValueCollection類的主要成員 【例例17.13】使用NameValueCollection類操作數(shù)據(jù)集合17.8.2 StringDictionary StringDictionary類將鍵和值強(qiáng)類型化為字符串而不是對(duì)象來(lái)實(shí)現(xiàn)哈希表。鍵不能是 null 引用,但值可以。鍵的處理方式是不區(qū)分大小寫(xiě)的;將鍵用于字符串字典之前會(huì)將其轉(zhuǎn)換成小寫(xiě) 表17-14 StringDictionary類的主要成員 【例例17.14】使用StringDictionary類操作數(shù)據(jù)集合17.8.3 StringCollection StringCollection類表示字符串集合。StringColle

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論