C#程序設(shè)計(jì)經(jīng)典教程PPT_第1頁
C#程序設(shè)計(jì)經(jīng)典教程PPT_第2頁
C#程序設(shè)計(jì)經(jīng)典教程PPT_第3頁
C#程序設(shè)計(jì)經(jīng)典教程PPT_第4頁
C#程序設(shè)計(jì)經(jīng)典教程PPT_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、1,C#計(jì)算機(jī)編程經(jīng)典教程,第1,6章集合,索引器和泛型,1 .總體要求是。了解NET類庫的集合類,并初步了解常用集合的創(chuàng)建和操作方式。理解索引器的概念有助于區(qū)分索引器和屬性,了解索引器的定義和使用。理解泛型相關(guān)概念,初步掌握泛型介面、泛型類、泛型屬性及泛型方法的使用。相關(guān)知識(shí)點(diǎn)熟悉類和數(shù)組的定義和使用。熟悉基本任務(wù),如定義和使用類的方法成員。2,3。定義和使用學(xué)習(xí)重點(diǎn)集、索引器、泛型。4.學(xué)習(xí)難點(diǎn)索引器的作用、使用方法泛型概念和語義定義、泛型定義和使用方法、第6章集合、索引器和泛型、第3、6章集合、索引器和泛型、主要內(nèi)容6.1集合6.2索引器6.3泛型、4、6.1集合、6.1.1集合概述6

2、. 1 . 2 ArrayList 6.2作業(yè)期間MyClass物件和Object物件之間的MyClass mcObj鋪路:Object obj=mcObj(不需要明確轉(zhuǎn)換)卸載:mcObj=(MyClass )obj(字典包裝)物件類型集合是System .在集合命名空間上。6,6.1數(shù)組類Array,數(shù)組是簡(jiǎn)單的集合System .Array類。所有數(shù)組的基類(不能用于派生的特殊類),public abstract class Array 3360 I clone able,ilist/Void CopyTo(Array array,int index):bootoObject Synch

3、Rootget,interface iclone able object Clone();interface ilist : collection,ienumerable int add(obj dect value);void Clear();bool Contains(object value);Intindexof(物件值);Void remove(對(duì)象密鑰);Void remove at(int index):Void insert(int index,對(duì)象值);interface ienumerator object current get;boolmovenext();Voidre

4、set(),interfaceienumerable/foreach遍歷的默認(rèn)IEnumerator Getenumerator();public static void main()inta=new int 3;array b=array . create instance(type of(int),3);for(int I=0);i3;I)a I=2 * I;B.SetValue(3*i,I);foreach(int x in a)console . write( 0 ,x);foreach(int x in b)console . write( 0 ,x);接口的方法:默認(rèn)值為publi

5、c abstract。繼承接口的類:必須實(shí)現(xiàn)接口的所有屬性和方法。否則,類是抽象的。7,6.1.4堆棧和隊(duì)列,1堆棧Stack Stack類提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)功能,插入或刪除對(duì)象時(shí)只能在堆棧頂部插入或刪除。創(chuàng)建堆棧對(duì)象的常用格式如下:Stack堆棧名稱=new Stack();Stack類提供了堆棧中常用的操作方法,其中包括在堆棧頂部添加數(shù)據(jù)、刪除堆棧頂部的數(shù)據(jù)、返回堆棧頂部的數(shù)據(jù)、清除堆棧,以及檢查是否包含數(shù)據(jù)。方法的名稱分別為Push、Pop、Peek、Clear和Contains。其中推送和Pop每次只能添加或刪除一個(gè)數(shù)據(jù)。a1、a2、an、堆棧底部、堆棧頂部、堆棧、堆棧、8、6.1.4

6、堆棧和隊(duì)列;雙隊(duì)列隊(duì)列隊(duì)列隊(duì)列隊(duì)列隊(duì)列實(shí)現(xiàn)先進(jìn)先出數(shù)據(jù)結(jié)構(gòu);隊(duì)列可用于按順序處理對(duì)象,因此隊(duì)列可以按對(duì)象的插入順序存儲(chǔ)。建立佇列物件的一般格式為Queue佇列名稱=new Queue(佇列長(zhǎng)度,增量系數(shù))。其中隊(duì)列長(zhǎng)度默認(rèn)設(shè)置為32。增量系數(shù)的默認(rèn)值為2.0。也就是說,每當(dāng)隊(duì)列容量不足時(shí),隊(duì)列長(zhǎng)度就會(huì)調(diào)整為原來的兩倍,從而可以調(diào)整增長(zhǎng)系數(shù)的大小。,a1 a2 a3 an,團(tuán)隊(duì)頭,團(tuán)隊(duì)尾,另一方面,NameValueCollection類和SortedList泛型類通過從元素0開始的索引或元素鍵提供元素訪問。(4)是否包含值、鍵和值集或鍵和多值集,其中“一個(gè)值”集合是從IList列表界面派生的集

7、合,“一個(gè)鍵和一個(gè)值”集合是基于IDictionary字典界面的集合,而“一個(gè)鍵和多個(gè)值”集合是NameValueCollection集合,電子學(xué)院成都市學(xué)院精品課程視覺c #。net計(jì)算機(jī)編程,2020/8/2,11,選擇集合類(繼續(xù)),(5)是否需要以不同于元素輸入的方式進(jìn)行元素排序。Hashtable按元素散列代碼對(duì)元素排序,SortedList和SortedDictionary按IComparer對(duì)鍵排序元素排序,ArrayList提供了Sort排序方法。(6)是否需要快速信息檢索和搜索,對(duì)于較小的集合(10個(gè)元素以下),ListDictionary比Hashtable快,Sorted

8、Dictionary泛型類提供比Dictionary泛型類更快的查找。(7)是否需要僅接受字符串的集合,如StringCollection、StringDictionary等。電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,12,3,集合創(chuàng)建和操作,1。動(dòng)態(tài)數(shù)組類ArrayList 2。隊(duì)列Queue 3。堆棧Stack 4。哈希表haack電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,1。動(dòng)態(tài)數(shù)組類ArrayList,ArrayList:可以看作是自動(dòng)增加容量的動(dòng)態(tài)數(shù)組,以實(shí)現(xiàn)IList接口。(1)Capacity集合容量

9、、讀和寫屬性;(2)計(jì)數(shù)導(dǎo)入列表中實(shí)際包含的元素?cái)?shù);(3)Add()方法:在列表末尾添加元素(4)Insert()方法:添加列表指定位置元素(5)net計(jì)算機(jī)編程,2020/8/2,14,1。動(dòng)態(tài)數(shù)組類ArrayList,(1) ArrayList和Array的區(qū)別Array的大小是固定的,arrayy是固定的;Array一次只能獲取或設(shè)置一個(gè)元素值,而ArrayList可以添加、插入或刪除元素范圍。Array的下限可以自定義,但ArrayList的下限始終為0。Array可以有多個(gè)維,但ArrayList始終只是一維的。Array是System命名空間,ArrayList是System .在

10、集合命名空間中。(2)動(dòng)態(tài)數(shù)組3360 ArrayList列表對(duì)象名稱=new ArrayList();例如:ArrayList list=new ArrayList();List .納福河(add);List .add(30);電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,15,2。隊(duì)列隊(duì)列,隊(duì)列特征插入或刪除對(duì)象時(shí),從隊(duì)列一端插入對(duì)象,從另一端刪除隊(duì)列對(duì)象Queue隊(duì)列名的先進(jìn)先出數(shù)據(jù)結(jié)構(gòu)說明:隊(duì)列長(zhǎng)度默認(rèn)為32,增量系數(shù)默認(rèn)為2.0(即,每當(dāng)隊(duì)列容量不足時(shí),隊(duì)列長(zhǎng)度將調(diào)整為2倍)。由于調(diào)整隊(duì)列的大小需要一些性能成本,因此最好在配置隊(duì)列時(shí)指定隊(duì)列深度。隊(duì)

11、列包含Enqueue、Dequeue、Peek、Clear、Contains等方法。其中,Enqueue和Dequeue一次只能添加或刪除一個(gè)任務(wù)的數(shù)據(jù)。例如:Queue q=new Queue(50,3.0);Q.Enqueue(東道);Q.Enqueue(西雷);電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,16,3。堆疊Stack,堆疊功能:進(jìn)階數(shù)據(jù)結(jié)構(gòu),插入或刪除物件時(shí),只能在堆疊頂部插入或刪除。創(chuàng)建堆棧對(duì)象:Stack堆棧名稱=new Stack();堆棧包含Push、Pop、Peek、Clear、Contain等方法。其中推送和Pop每次只能添加

12、或刪除一個(gè)數(shù)據(jù)。例如:Stack s=new Stack();s .推(成都市);s .推(四川省);電子學(xué)院成都市學(xué)院精品課程視覺c #。net計(jì)算機(jī)編程,2020/8/2,17,4。表示哈希表哈希表、哈希表(也稱為哈希表)和鍵/值對(duì)的集合。哈希表特征:在保存集合元素時(shí),首先根據(jù)密鑰自動(dòng)計(jì)算哈希代碼,以確定元素存儲(chǔ)位置,然后將元素值放入該位置指向的存儲(chǔ)桶中。查找時(shí),通過與密鑰相對(duì)應(yīng)的哈希代碼重新搜索特定的存儲(chǔ)桶。創(chuàng)建哈希表對(duì)象Hashtable哈希表名稱=new Hashtable(哈希表長(zhǎng)度,增量系數(shù));說明,缺省長(zhǎng)度為零,缺省增量系數(shù)為1.0哈希表(包括Add、Remove、Clear、

13、Contains等)。其中Add方法需要兩個(gè)參數(shù)。一個(gè)是密鑰,另一個(gè)是值。Remove方法只需要一個(gè)密鑰名稱參數(shù)。例如:hash table h=new hash table();h .追加(1001,二千郡);h .追加(1002,張金鐘仁);電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,18,5。字符串字典StringDictionary;字符串字典string dictionary是一種哈希表類型,用于將鍵和值強(qiáng)化為字符串,而不是對(duì)象。其中密鑰不能為空牙齒,且不區(qū)分大小寫入。例如:string dictionary my col=new string

14、dictionary();MyCol。Add(名稱,納福河);MyCol。Add(性別,男性);foreach(dictionary entry de in my col)console . writeline(0t1n,de.key,de . value);電子學(xué)院成都市學(xué)院精品課程Visual C#。Net計(jì)算機(jī)編程,2020/8/2,6.2索引器,6.2.1索引器定義,6.2.2索引器使用和屬性比較,返回,19,6.如果類包含數(shù)組或集合成員,則索引器會(huì)大大簡(jiǎn)化對(duì)數(shù)組或集合成員的訪問。20,6.2.1索引器的定義和使用,索引器的定義與屬性定義類似。一般格式如下:修改子資料類型this索引類型index get /匯入屬性set /設(shè)定屬性,類別album/相簿類別phot定義/牙齒陣列包含照片public Photo thisint index /int參數(shù)Photo讀取/寫入索引Return photosindex : /對(duì)于有效索引,返回請(qǐng)求的照片set if(index=photos . length)return。Photosindex=value,21,6.2.1索引器的定義和使用,2索引器的使用允許通過索引器訪問類實(shí)例中的數(shù)組成員。這與陣列的工作方式類似。一般格式如下:對(duì)象名索引。索引的數(shù)據(jù)類型必須與索引器的索引類型相同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論