第4章+數(shù)組與集合-2(課件)-《算法與程序設(shè)計(jì)-C#》同步教學(xué)(清華大學(xué)版)_第1頁(yè)
第4章+數(shù)組與集合-2(課件)-《算法與程序設(shè)計(jì)-C#》同步教學(xué)(清華大學(xué)版)_第2頁(yè)
第4章+數(shù)組與集合-2(課件)-《算法與程序設(shè)計(jì)-C#》同步教學(xué)(清華大學(xué)版)_第3頁(yè)
第4章+數(shù)組與集合-2(課件)-《算法與程序設(shè)計(jì)-C#》同步教學(xué)(清華大學(xué)版)_第4頁(yè)
第4章+數(shù)組與集合-2(課件)-《算法與程序設(shè)計(jì)-C#》同步教學(xué)(清華大學(xué)版)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

C#程序設(shè)計(jì)

第4章

數(shù)組與集合2集合Array類(lèi)ArrayList★掌握Array類(lèi)的使用及操作掌握ArrayList的使用及操作3Array類(lèi)C#中的數(shù)組繼承自System.ArrayArray類(lèi)是抽象類(lèi)。不能使用構(gòu)造函數(shù)來(lái)創(chuàng)建數(shù)組用靜態(tài)方法CreateInstance()創(chuàng)建數(shù)組staticArrayCreateInstance(TypeelementType,intlength);用SetValue(objectvalue,intindex)方法設(shè)置值。objectGetValue(int

index)索引值A(chǔ)rrayintArray1=Array.CreateInstance(typeof(int),5);for(inti=0;i<5;i++){intArray1.SetValue(33,i);}for(inti=0;i<5;i++){Console.WriteLine(intArray1.GetValue(i));}4Array類(lèi)用靜態(tài)方法CreateInstance()創(chuàng)建數(shù)組publicstaticArrayCreateInstance

(TypeelementType,int[]lengths,int[]lowerBounds);用SetValue(objectvalue,intindex)方法設(shè)置值。lowerBounds:創(chuàng)建具有指定下限lengths:維長(zhǎng)5Array類(lèi)獲得數(shù)組指定維的上下限intGetUpperBound(intdimension):上限intGetLowerBound(intdimension):下限獲得指定維的元素個(gè)數(shù)intGetLength(intdimension)6Array類(lèi)Clone()創(chuàng)建數(shù)組的副本數(shù)組的元素是值類(lèi)型,就會(huì)為數(shù)組分配內(nèi)存,復(fù)制所有的值7Array類(lèi)Clone()創(chuàng)建數(shù)組的副本數(shù)組的元素引用類(lèi)型,則不復(fù)制元素,而只復(fù)制引用8Array的方法Array.BinarySearch(數(shù)組名,key);二分查找Array.Copy(源數(shù)組名,目標(biāo)數(shù)組名,長(zhǎng)度N)將源數(shù)組從第一個(gè)元素開(kāi)始的N個(gè)元素復(fù)制給目標(biāo)數(shù)組數(shù)組名.CopyTo(目標(biāo)數(shù)組,指定起始下標(biāo))將一維數(shù)組所有元素復(fù)制到一維目標(biāo)數(shù)組指定的起始下標(biāo)開(kāi)始的位置Array.Sort(數(shù)組名)Array.Reverse(數(shù)組名)Array.Reverse(數(shù)組名,下標(biāo),長(zhǎng)度) 9Array的方法IndexOf(數(shù)組名,要查找的值)

返回指定值第一次出現(xiàn)的索引值數(shù)組名.SetValue(值,下標(biāo))給數(shù)組元素賦值數(shù)組名.GetValue(下標(biāo))讀取數(shù)組元素的值A(chǔ)rray.Copy(源數(shù)組名,目標(biāo)數(shù)組名,長(zhǎng)度N)將源數(shù)組從第一個(gè)元素開(kāi)始的N個(gè)元素復(fù)制給目標(biāo)數(shù)組數(shù)組名.CopyTo(目標(biāo)數(shù)組,指定起始下標(biāo))將一維數(shù)組所有元素復(fù)制到一維目標(biāo)數(shù)組指定的起始下標(biāo)開(kāi)始的位置10Array的方法數(shù)組名.Length 屬性。獲得數(shù)組所有維數(shù)中元素的總數(shù)Array.Reverse(數(shù)組名)Array.Reverse(數(shù)組名,下標(biāo),長(zhǎng)度) 反轉(zhuǎn)一維數(shù)組全部元素或從下標(biāo)開(kāi)始的指定長(zhǎng)度的元素?cái)?shù)組名.Rank返回?cái)?shù)組的維數(shù)數(shù)組名.GetLowerBound(維數(shù))返回?cái)?shù)組指定維數(shù)的下限對(duì)于一維和多維數(shù)組11intscore1;System.Console.ReadLine(score1)intscore2;System.Console.ReadLine(score2)intscore3;System.Console.ReadLine(score3)intscore4;System.Console.ReadLine(score4)intscore5;System.Console.ReadLine(score5)intscore6;System.Console.ReadLine(score6)intscore7;System.Console.ReadLine(score7)第七位學(xué)生的分?jǐn)?shù)第六位學(xué)生的分?jǐn)?shù)第五位學(xué)生的分?jǐn)?shù)第四位學(xué)生的分?jǐn)?shù)第三位學(xué)生的分?jǐn)?shù)第二位學(xué)生的分?jǐn)?shù)第一位學(xué)生的分?jǐn)?shù)score[6]score[5]score[4]score[3]score[1]score[0]score[2]數(shù)組應(yīng)用程序數(shù)組存儲(chǔ)學(xué)員的分?jǐn)?shù)intscore[]=newint[7];6754321在數(shù)組的術(shù)語(yǔ)中,元素表示數(shù)組中存儲(chǔ)的值,數(shù)組長(zhǎng)度指數(shù)組中存儲(chǔ)的值的總數(shù),數(shù)組秩指數(shù)組的總維數(shù)12System.Collections簡(jiǎn)介ID工作檔案ID工作檔案ID工作檔案ID工作檔案職員1職員2職員3職員4Employee對(duì)象的集合對(duì)象組中元素個(gè)數(shù)未知,并且隨時(shí)可能要循環(huán)、添加和移除System.Collections13System.Collections簡(jiǎn)介2-2System.Collection命名空間類(lèi)接口結(jié)構(gòu)實(shí)現(xiàn)了ICollection接口和IEnumerator接口Count屬性,返回集合元素?cái)?shù)量CopyTo(Arrayarray,intindex)可以使用foreach遍歷14ArrayList是一個(gè)可動(dòng)態(tài)維護(hù)長(zhǎng)度的集合count:

實(shí)際元素個(gè)數(shù)capacity:

集合的容量,按2的冪次擴(kuò)充??删S護(hù)動(dòng)態(tài)長(zhǎng)度的集合新增元素可刪除元素可訪問(wèn)單個(gè)元素objectobjectobjectobject0123索引(下標(biāo))object40123ArrayList自動(dòng)調(diào)整索引通過(guò)索引訪問(wèn)15ArrayList的初始化usingSystem.Collections;…ArrayListlist1=newArrayList();ArrayListTeachers=newArrayList(5)ArrayListOthers=newArrayList(otherCollection);可以指定長(zhǎng)度引入命名空間默認(rèn)構(gòu)造方法ArrayList只能是一維形式,數(shù)組可以是多維的引入System.Collections命名空間實(shí)例化ArrayList對(duì)象從其它集合創(chuàng)建16ArrayList添加元素intAdd(Objectvalue)//添加一個(gè)對(duì)象到集合的末尾返回索引可為null返回索引可為nullcount屬性獲取集合實(shí)際元素?cái)?shù)目capacity獲取集合的容量也可以是:list1.add(1)集合中的元素可以是任何類(lèi)型17ArrayList添加元素集合在沒(méi)有添加元素前,count屬性為0list2.add(10);list2.add(9);此時(shí)capacity是:20×18訪問(wèn)ArrayList元素(類(lèi)型)ArrayList[index]//按指定索引(下標(biāo))取得對(duì)象stringstr1=(string)list1[0];Console.WriteLine(str1);…按索引取值轉(zhuǎn)換為string對(duì)象ArrayList第一個(gè)對(duì)象的索引是0需要類(lèi)型轉(zhuǎn)換19ArrayList的遍歷//遍歷foreach(objectobjinlist1){stringstr=(string)obj;Console.Write("{0}\n",str);}通過(guò)對(duì)象遍歷打印對(duì)象的Name屬性可以使用和數(shù)組類(lèi)似的方式for(inti=0;i<list1.Count;i++){stringstr=(string)list1[i];Console.Write("{0}\n",str);}foreach方式輸出結(jié)果類(lèi)型轉(zhuǎn)換20刪除ArrayList的元素ArrayList.Remove(對(duì)象名)//刪除指定對(duì)象名的對(duì)象ArrayList.RemoveAt(index)//刪除指定索引的對(duì)象ArrayList.Clear()//清除集合內(nèi)的所有元素ArrayList.RemoveRange(intindex,intcount)//將集合從指定索引處開(kāi)始的count個(gè)元素刪除list1.RemoveAt(1);list1.Remove(“tom”);stringstrdel=(string)list1[0];Console.WriteLine(strdel);通過(guò)索引刪除對(duì)象通過(guò)指定對(duì)象刪除只剩一個(gè)對(duì)象剩余的元素會(huì)自動(dòng)調(diào)整索引取得刪除后的第一個(gè)對(duì)象21常見(jiàn)錯(cuò)誤1//…list1.Add(“zhangsan”);list1.Add(“l(fā)isi”);list1.Add(“wangwu”);list1.RemoveAt(0);list1.RemoveAt(1);list1.RemoveAt(2);運(yùn)行這段代碼會(huì)發(fā)生錯(cuò)誤?索引會(huì)自動(dòng)調(diào)整刪除兩個(gè)元素后,不再有索引“2“22常見(jiàn)錯(cuò)誤2Studentzhangsan=newStudent("張三",20);…Studentzhangsan2=newStudent("張三",20);//打印集合的元素…list1.Remove(zhangsan2

);//打印集合的元素…如果Remove(zhangsan2

),能否刪除zhangsan對(duì)象?定義一個(gè)對(duì)象與前面的值相同兩次的結(jié)果都一致,沒(méi)有刪除,為什么?演示:MySchool

此例集合中存放的元素是類(lèi)的對(duì)象(存放的是引用,而不是具體值)23課堂討論集合中的元素應(yīng)該如何正確地刪除?-采用循環(huán)刪除,從集合的后面開(kāi)始刪除-采用循環(huán)刪除,固定集合元素個(gè)數(shù),然后不停刪除0號(hào)元素24循環(huán)刪除元素intN=list1.Count;for(inti=1;i<=N;i++)list1.RemoveAt(0);for(inti=list1.Count-1;i>=0;i--)list1.RemoveAt(i);每次刪除第一個(gè)元素每次刪除最后一個(gè)元素25ArrayList的插入和查找Insert(intindex,objectvalue)boolContains(objectitem)在ArrayList中查找item,找到為true,找不到為false.intInde

溫馨提示

  • 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)論