版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C#程序設計
第4章
數組與集合2集合Array類ArrayList★掌握Array類的使用及操作掌握ArrayList的使用及操作3Array類C#中的數組繼承自System.ArrayArray類是抽象類。不能使用構造函數來創建數組用靜態方法CreateInstance()創建數組staticArrayCreateInstance(TypeelementType,intlength);用SetValue(objectvalue,intindex)方法設置值。objectGetValue(int
index)索引值ArrayintArray1=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類用靜態方法CreateInstance()創建數組publicstaticArrayCreateInstance
(TypeelementType,int[]lengths,int[]lowerBounds);用SetValue(objectvalue,intindex)方法設置值。lowerBounds:創建具有指定下限lengths:維長5Array類獲得數組指定維的上下限intGetUpperBound(intdimension):上限intGetLowerBound(intdimension):下限獲得指定維的元素個數intGetLength(intdimension)6Array類Clone()創建數組的副本數組的元素是值類型,就會為數組分配內存,復制所有的值7Array類Clone()創建數組的副本數組的元素引用類型,則不復制元素,而只復制引用8Array的方法Array.BinarySearch(數組名,key);二分查找Array.Copy(源數組名,目標數組名,長度N)將源數組從第一個元素開始的N個元素復制給目標數組數組名.CopyTo(目標數組,指定起始下標)將一維數組所有元素復制到一維目標數組指定的起始下標開始的位置Array.Sort(數組名)Array.Reverse(數組名)Array.Reverse(數組名,下標,長度) 9Array的方法IndexOf(數組名,要查找的值)
返回指定值第一次出現的索引值數組名.SetValue(值,下標)給數組元素賦值數組名.GetValue(下標)讀取數組元素的值Array.Copy(源數組名,目標數組名,長度N)將源數組從第一個元素開始的N個元素復制給目標數組數組名.CopyTo(目標數組,指定起始下標)將一維數組所有元素復制到一維目標數組指定的起始下標開始的位置10Array的方法數組名.Length 屬性。獲得數組所有維數中元素的總數Array.Reverse(數組名)Array.Reverse(數組名,下標,長度) 反轉一維數組全部元素或從下標開始的指定長度的元素數組名.Rank返回數組的維數數組名.GetLowerBound(維數)返回數組指定維數的下限對于一維和多維數組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)第七位學生的分數第六位學生的分數第五位學生的分數第四位學生的分數第三位學生的分數第二位學生的分數第一位學生的分數score[6]score[5]score[4]score[3]score[1]score[0]score[2]數組應用程序數組存儲學員的分數intscore[]=newint[7];6754321在數組的術語中,元素表示數組中存儲的值,數組長度指數組中存儲的值的總數,數組秩指數組的總維數12System.Collections簡介ID工作檔案ID工作檔案ID工作檔案ID工作檔案職員1職員2職員3職員4Employee對象的集合對象組中元素個數未知,并且隨時可能要循環、添加和移除System.Collections13System.Collections簡介2-2System.Collection命名空間類接口結構實現了ICollection接口和IEnumerator接口Count屬性,返回集合元素數量CopyTo(Arrayarray,intindex)可以使用foreach遍歷14ArrayList是一個可動態維護長度的集合count:
實際元素個數capacity:
集合的容量,按2的冪次擴充。可維護動態長度的集合新增元素可刪除元素可訪問單個元素objectobjectobjectobject0123索引(下標)object40123ArrayList自動調整索引通過索引訪問15ArrayList的初始化usingSystem.Collections;…ArrayListlist1=newArrayList();ArrayListTeachers=newArrayList(5)ArrayListOthers=newArrayList(otherCollection);可以指定長度引入命名空間默認構造方法ArrayList只能是一維形式,數組可以是多維的引入System.Collections命名空間實例化ArrayList對象從其它集合創建16ArrayList添加元素intAdd(Objectvalue)//添加一個對象到集合的末尾返回索引可為null返回索引可為nullcount屬性獲取集合實際元素數目capacity獲取集合的容量也可以是:list1.add(1)集合中的元素可以是任何類型17ArrayList添加元素集合在沒有添加元素前,count屬性為0list2.add(10);list2.add(9);此時capacity是:20×18訪問ArrayList元素(類型)ArrayList[index]//按指定索引(下標)取得對象stringstr1=(string)list1[0];Console.WriteLine(str1);…按索引取值轉換為string對象ArrayList第一個對象的索引是0需要類型轉換19ArrayList的遍歷//遍歷foreach(objectobjinlist1){stringstr=(string)obj;Console.Write("{0}\n",str);}通過對象遍歷打印對象的Name屬性可以使用和數組類似的方式for(inti=0;i<list1.Count;i++){stringstr=(string)list1[i];Console.Write("{0}\n",str);}foreach方式輸出結果類型轉換20刪除ArrayList的元素ArrayList.Remove(對象名)//刪除指定對象名的對象ArrayList.RemoveAt(index)//刪除指定索引的對象ArrayList.Clear()//清除集合內的所有元素ArrayList.RemoveRange(intindex,intcount)//將集合從指定索引處開始的count個元素刪除list1.RemoveAt(1);list1.Remove(“tom”);stringstrdel=(string)list1[0];Console.WriteLine(strdel);通過索引刪除對象通過指定對象刪除只剩一個對象剩余的元素會自動調整索引取得刪除后的第一個對象21常見錯誤1//…list1.Add(“zhangsan”);list1.Add(“lisi”);list1.Add(“wangwu”);list1.RemoveAt(0);list1.RemoveAt(1);list1.RemoveAt(2);運行這段代碼會發生錯誤?索引會自動調整刪除兩個元素后,不再有索引“2“22常見錯誤2Studentzhangsan=newStudent("張三",20);…Studentzhangsan2=newStudent("張三",20);//打印集合的元素…list1.Remove(zhangsan2
);//打印集合的元素…如果Remove(zhangsan2
),能否刪除zhangsan對象?定義一個對象與前面的值相同兩次的結果都一致,沒有刪除,為什么?演示:MySchool
此例集合中存放的元素是類的對象(存放的是引用,而不是具體值)23課堂討論集合中的元素應該如何正確地刪除?-采用循環刪除,從集合的后面開始刪除-采用循環刪除,固定集合元素個數,然后不停刪除0號元素24循環刪除元素intN=list1.Count;for(inti=1;i<=N;i++)list1.RemoveAt(0);for(inti=list1.Count-1;i>=0;i--)list1.RemoveAt(i);每次刪除第一個元素每次刪除最后一個元素25ArrayList的插入和查找Insert(intindex,objectvalue)boolContains(objectitem)在ArrayList中查找item,找到為true,找不到為false.intInde
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅仁德江縣人民醫院招聘筆試真題2025
- 政府采購合同(2026版)
- 淄博市臨淄區招聘城鎮公益性崗位人員筆試真題2025
- 隴南市禮縣中小學選調教師筆試真題2025
- 食品行業毛發異物防控要點
- 2026年甘肅省武威市中考道德與法治試卷(真題+答案)
- 2026年康復科術后粘連預防護理查房
- 某建材公司工程驗收細則
- 廣西欽州市某中學2025-2026學年高一年級下冊3月份考試 生物試題
- 某建筑公司施工現場安全準則
- 2026年四川省擬任縣處級黨政領導職務政治理論水平任職資格考試沖刺試題及答案
- 2026年度全國保密教育線上培訓題庫(選擇+判斷)及參考答案
- 2026年比亞迪網申在線測試題及答案
- 無人機數字化管控平臺搭建方案
- 樂平市市屬國資控股集團有限公司面向社會公開招聘人員【15人】筆試歷年常考點試題專練附帶答案詳解
- TCABEE080-2024零碳建筑測評標準(試行)
- 審計署工作保密制度
- 醫療器械質量意識培訓資料
- 2026年中醫內科臨床診療指南-塵肺病
- 會展策劃書案例
- 2025ACP臨床指南:門診預防發作性偏頭痛的藥物治療解讀課件
評論
0/150
提交評論