版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第6章數(shù)組與集合本章導(dǎo)讀:本章的主要內(nèi)容是一維數(shù)組、二維數(shù)組和ArrayList集合類的使用。然后通過項(xiàng)目“學(xué)生成績單”為導(dǎo)向,三個任務(wù)(打印學(xué)生成績單、打印多名學(xué)生的成績單、學(xué)生選課)為驅(qū)動,學(xué)習(xí)有關(guān)數(shù)組與集合的知識,包括一維數(shù)組、二維數(shù)組、ArrayList集合類等,本項(xiàng)目的使得學(xué)習(xí)者對構(gòu)造類型數(shù)據(jù)有一定認(rèn)識。第6章數(shù)組和集合
——任務(wù)一打印學(xué)生成績單
一、任務(wù)描述:編制一個C#控制臺應(yīng)用程序:從鍵盤依次輸入學(xué)生的4門課成績,計(jì)算出學(xué)生的總分和平均分,并根據(jù)規(guī)則判斷該學(xué)生所得獎學(xué)金等級,項(xiàng)目運(yùn)行效果如下圖所示:二、知識準(zhǔn)備:1一維數(shù)組的聲明和使用2數(shù)組的常見屬性及方法二、知識準(zhǔn)備:1、一維數(shù)組的聲明和使用(1)一維數(shù)組的聲明通過前面的學(xué)習(xí)大家已經(jīng)知道,變量在使用前必須聲明,一維數(shù)組也是一種變量,所以在使用一維數(shù)組之前也先聲明。聲明一維數(shù)組的格式為:數(shù)組類型[]數(shù)組名;例如:float[]scores;//定義float型的一維數(shù)組用于存放1個學(xué)生的成績int[]nums;//定義int型的一維數(shù)組存放學(xué)生學(xué)號string[]names;//定義string型的一維數(shù)組用于存放所有學(xué)生的姓名二、知識準(zhǔn)備:1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化在C#中有下面三種方法對數(shù)組進(jìn)行實(shí)始化:1)聲明數(shù)組的同時給出一組用“,”分隔開的元素列表,并用{}括起來。例如:張三成績一維數(shù)組定義為:float[]scores={85.5,90,72.5,83,0,0};該代碼定義了一個float類型的一維數(shù)組,數(shù)組名為scores,里面存放了6個實(shí)型數(shù),依次為85.5,90,72.5,83,0,0,因?yàn)榭偡趾推骄诌€未計(jì)算,所以暫時賦值為0。二、知識準(zhǔn)備:數(shù)組的這種初始化方式必須與聲明數(shù)組同時進(jìn)行,如上面的代碼不能分開,寫成下面兩句話就會報錯:float[]scoresscores={85.5,90,72.5,83,0,0};1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識準(zhǔn)備:2)使用new關(guān)鍵字顯示初始化數(shù)組,只確定數(shù)組的長度,即數(shù)組元素的個數(shù),格式為:數(shù)組名=new數(shù)組類型[數(shù)組長度];例如:float[]scores=newfloat[6];或者float[]scores;scores=newfloat[6];1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識準(zhǔn)備:3)使用new關(guān)鍵字顯示初始化數(shù)組,不僅確定數(shù)組的長度,而且為所有的數(shù)組元素賦了初始值,如:float[]scores=newfloat[6]{85.5,90,72.5,83,0,0};或者
float[]scores;scores=newfloat[6]{85.5,90,72.5,83,0,0};注意:數(shù)組的這種初始化方式要求給出的數(shù)組長度值必須與[]內(nèi)的初始值個數(shù)一致。1、一維數(shù)組的聲明和使用(2)一維數(shù)組的初始化二、知識準(zhǔn)備:數(shù)組初始化后就可以通過下標(biāo)訪問其中的所有元素了,其使用格式為:數(shù)組名[下標(biāo)]“下標(biāo)”:就是數(shù)組中元素的順序號,從0開始,到數(shù)組的長度減1為止(數(shù)組的長度就是數(shù)組中元素的個數(shù))。通常使用for語句或foreach語句通過一維數(shù)組的下標(biāo)訪問數(shù)組元素,下面的任務(wù)中通過for語句對數(shù)組元素進(jìn)行輸入,通過foreach對數(shù)組元素進(jìn)行輸出。1、一維數(shù)組的聲明和使用(3)一維數(shù)組的元素的引用,輸入及輸出二、知識準(zhǔn)備:2、數(shù)組的常見屬性及方法C#自帶了數(shù)組的一些屬性和方法,在程序設(shè)計(jì)中,如果知道數(shù)組的這些屬性和方法,往往可以簡化程序的設(shè)計(jì),提高開發(fā)效率。(1)數(shù)組的常見屬性Length屬性:表示數(shù)組所有維數(shù)中元素的總數(shù),即數(shù)組的長度。float[]scores=newfloat[6];則scores.Length的值為6,表示數(shù)組scores的長度為6,可以存放6個元素。二、知識準(zhǔn)備:(1)數(shù)組的常見屬性Rank屬性:表示數(shù)組的維數(shù)。例1:float[]scores=newfloat[6];則scores.Rank的值為1,表示數(shù)組scores的維數(shù)為1,scores是一維數(shù)組。例2:string[,]names=newstrng[3,5];則names.Rank的值為2,表示數(shù)組names的維數(shù)為2,names是二維數(shù)組2、數(shù)組的常見屬性及方法C#自帶了數(shù)組的一些屬性和方法,在程序設(shè)計(jì)中,如果知道數(shù)組的這些屬性和方法,往往可以簡化程序的設(shè)計(jì),提高開發(fā)效率。二、知識準(zhǔn)備:2、數(shù)組的常見屬性及方法(2)數(shù)組的常見方法1)Sort方法:對一維數(shù)組排序。它是Array類的靜態(tài)方法,使用格式為:Array.Sort(數(shù)組名);二、知識準(zhǔn)備:例6.1將常見的中國百家姓升序排列后輸出:staticvoidMain(string[]args){string[]nameFirst={"li","zhou","zhang","wang","xia","liu"};Array.Sort(nameFirst);foreach(stringninnameFirst) { Console.WriteLine(n); }Console.ReadLine();}思考:去掉語句“Array.Sort(nameFirst);”后,數(shù)組中的元素順序如何,程序輸出什么樣的結(jié)果?二、知識準(zhǔn)備:Array.Reverse(數(shù)組名);2、數(shù)組的常見屬性及方法(2)數(shù)組的常見方法2)Reverse方法:反轉(zhuǎn)一維數(shù)組,即第一個元素變?yōu)樽詈笠粋€元素,最后一個元素變?yōu)榈谝粋€元素。它是Array類的靜態(tài)方法,使用格式為:二、知識準(zhǔn)備:例6.2:staticvoidMain(string[]args){int[]num={10,20,30,40,50,60,70,80,90,100};Array.Reverse(num);foreach(intninnum) { Console.WriteLine(n); }Console.ReadLine();}思考:有了語句“Array.Reverse(num);”后,數(shù)組的元素存放順序是怎樣的?如果刪除該句,程序輸出什么樣的結(jié)果?二、知識準(zhǔn)備:數(shù)組名.GetLowerBound(維度)
數(shù)組名.GetUpperBound(維度)2、數(shù)組的常見屬性及方法(2)數(shù)組的常見方法3)GetLowerBound與GetUpperBound方法:獲取數(shù)組指定維度的下限與上限,使用格式為:二、知識準(zhǔn)備:例6.3:staticvoidMain(string[]args){int[]num={10,20,30,40,50,60,70,80,90,100};intlowerBound=num.GetLowerBound(0);intupperBound=num.GetUpperBound(0);Console.WriteLine("數(shù)組num的下界為:"+lowerBound+"\n上界為:"+upperBound);Console.ReadLine();}二、知識準(zhǔn)備:
Array.IndexOf(數(shù)組名,元素值)2、數(shù)組的常見屬性及方法(2)數(shù)組的常見方法4)IndexOf方法:在數(shù)組中根據(jù)元素值獲取該元素的第一個索引號,如果數(shù)組中不存在該元素值,則返回-1。它是Array類的靜態(tài)方法,使用格式為:二、知識準(zhǔn)備:例6.4:staticvoidMain(string[]args){int[]num={10,20,30,40,50,30,70,80,90,100};intindexNo=Array.IndexOf(num,30);Console.WriteLine("數(shù)組num中最后一個值為30的個元素的索引號為:"+indexNo);Console.ReadLine();}這段代碼中,一維數(shù)組num中有兩個值為30的元素,但程序運(yùn)行后輸出第一個30的索引號,即2,而不是5。二、知識準(zhǔn)備:2、數(shù)組的常見屬性及方法(2)數(shù)組的常見方法5)LastIndexOf方法:在數(shù)組中根據(jù)元素值獲取該元素的最后一個索引號,如果數(shù)組中不存在該元素值,則返回-1。它是Array類的靜態(tài)方法,使用格式為:
Array.LastIndexOf(數(shù)組名,元素值)特別提示:數(shù)組的這些屬性和方法對多維數(shù)組也同樣適用,所以后面將不再單獨(dú)講述二維數(shù)組的屬性和方法。二、知識準(zhǔn)備:例6.5:staticvoidMain(string[]args){int[]num={10,20,30,40,50,30,70,80,30,100};intindexNo=Array.LastIndexOf(num,30);Console.WriteLine("數(shù)組num中最后一個值為30的個元素的索引號為:"+indexNo);Console.ReadLine();}這段代碼中,一維數(shù)組num中有三個值為30的元素,但程序運(yùn)行后輸出最后一個30的索引號,即8,而不是2或5。三、任務(wù)分析:1、分析輸出學(xué)生成績需要以下變量,如下表所示:變量聲明說明表2、對學(xué)生的四門課成績利用for循環(huán)通過數(shù)組索引(索引號0~3)進(jìn)行輸入,索引為4的數(shù)組元素用于存放總分,索引為5的數(shù)組元素用于存放平均分,步驟如下。序號變量名稱變量類型變量作用1scoresfloat一維數(shù)組,用于存放各門課成績、總分和平均分2iint循環(huán)變量,同時代表數(shù)組索引3scorefloatforeach循環(huán)變量輸入四門課成績計(jì)算總分和平均分輸出成績判斷并輸出獎學(xué)金等級四、任務(wù)實(shí)施:1、啟動VisualStudio2010,建立名為“stuscore”的控制臺應(yīng)用程序。2、在Program.cs文件中輸入如下代碼:首先是變量的定義:float[]scores=newfloat[6];一維數(shù)組部分元素的初始化。因?yàn)閟cores[4]和scores[5]元素存放的是學(xué)生的總分和平均分,所以需要對其進(jìn)行初始化,便于計(jì)算:scores[4]=scores[5]=0;四、任務(wù)實(shí)施:1)輸入四門課成績Console.WriteLine("請依次輸入學(xué)生的英語、C#、數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)成績:");for(inti=0;i<4;i++){scores[i]=Convert.ToSingle(Console.ReadLine());//強(qiáng)制轉(zhuǎn)換為float型}四、任務(wù)實(shí)施:2)計(jì)算總分和平均分計(jì)算總分的過程可以在輸入成績的時候同時進(jìn)行,在①中循環(huán)體最后加入1句代碼:scores[4]+=scores[i];計(jì)算平均分必須在總分計(jì)算完成之后,所以在循環(huán)體外后面加入代碼:scores[5]=scores[4]/4;四、任務(wù)實(shí)施:3)利用foreach語句輸出成績foreach(floatscoreinscores){Console.Write(score+"\t");}也可以同樣利用for語句輸出數(shù)組元素for(i=0;i<scores.Length;i++){Console.Write(scores[i]+"\t");}四、任務(wù)實(shí)施:4)判斷并輸出等級if(scores[5]>=90){Console.WriteLine("一等獎學(xué)金");}elseif(scores[5]>=80&&scores[5]<=90){Console.WriteLine("二等獎學(xué)金");}elseif(scores[5]>=70&&scores[5]<=80){Console.WriteLine("三等獎學(xué)金");}else{Console.WriteLine("無獎學(xué)金");}3、運(yùn)行程序。1、對使用Console.ReadLine()輸入的字符串要經(jīng)過強(qiáng)制類型轉(zhuǎn)換才能賦值給數(shù)組元素:scores[i]=Convert.ToSingle(Console.ReadLine())2、通常通過for和foreach語句來對數(shù)組元素進(jìn)行輸入和輸出,使用時要注意兩種方式的區(qū)別。3、數(shù)組的Length屬性表示取數(shù)組的長度。五、任務(wù)小結(jié):第6章數(shù)組與集合
——任務(wù)二打印多名學(xué)生的成績單
一、任務(wù)描述:編制一個C#控制臺應(yīng)用程序:從鍵盤依次輸入3名學(xué)生的姓名和學(xué)號,然后輸入學(xué)生的4門課成績,計(jì)算出每名學(xué)生的總分和平均分,并根據(jù)規(guī)則判斷該學(xué)生所得獎學(xué)金等級,最后輸出整個成績表。運(yùn)行效果如下圖所示1二、知識準(zhǔn)備:二維數(shù)組的聲明和使用二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(1)什么是二維數(shù)組C#中的數(shù)組除了一維數(shù)組外,還有二維數(shù)組、三維數(shù)組等多維數(shù)組,其中以二維數(shù)組最為常見。學(xué)生的成績部分就是一個二維數(shù)組結(jié)構(gòu),我們把它簡化為下表:英語C#數(shù)學(xué)數(shù)據(jù)結(jié)構(gòu)總分平均分85.59072.583.5331.582.8757869.586.57731177.7589.5958790361.590.375二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(1)什么是二維數(shù)組它可以用一個二維數(shù)組來表示,有3行6列,一共18個元素。二維數(shù)組可以看成是一個特殊的一維數(shù)組,該一維數(shù)組的每個元素又是一個一維數(shù)組。如上面的成績表可以看成是長度為3的一維數(shù)組:第一個元素是1個一維數(shù)組(85.5,90,72.5,83.5,331.5,82.875)第二個元素是1個一維數(shù)組(78,69.9,86.5,77,311,77.75)第三個元素是1個一維數(shù)組(89.5,95,87,90,361.5,90,375)二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(2)二維數(shù)組的定義同一維數(shù)組一樣,在使用二維數(shù)組前必須定義,格式為:數(shù)組類型[,]數(shù)組名;其中“數(shù)組類型”為該數(shù)組中元素的數(shù)據(jù)類型。如果我們要定義一個二維數(shù)組來裝下上表中3個學(xué)生的成績,可以做如下定義:
flaot[,]scores;二、知識準(zhǔn)備:如果我們要定義一個字符串類型的二維數(shù)組,可以做如下定義:
string[,]str;上式中定義了一個字符串類型的二維數(shù)組str。如果要定義三維數(shù)組,則格式為:數(shù)組類型[,,]數(shù)組名;例如:int[,,]x;1、二維數(shù)組的聲明和使用(2)二維數(shù)組的定義特別提醒二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化跟一維數(shù)組相同,二維數(shù)組在聲明之后必須為其分配內(nèi)存空間,即必須對二維數(shù)組進(jìn)行初始化。1)聲明二維數(shù)組的同時進(jìn)行初始化。即將二維數(shù)組所有元素用一個“{}”括起來,該花括號里面是用逗號“,”隔開的多個“{}”。例如:上面的行列式的初始化float[,]scores={{85.5,90,72.5,83.5,331.5,82.875},{78,69.9,86.5,77,311,77.75},{89.5,95,87,90,361.5,90,375}};
二、知識準(zhǔn)備:例如,下表是某學(xué)校課程授課信息:為存放這些數(shù)據(jù),可以這樣聲明一個3行3列的sting型二維數(shù)組:課程名稱授課教師授課班級《C語言程序設(shè)計(jì)》劉小華13軟件1班《C++程序設(shè)計(jì)》張小友12軟件2班《C#程序設(shè)計(jì)》郭小城11軟件3班string[,]teach={
{"《C語言程序設(shè)計(jì)》","劉小華","13軟件1班"},
{"《C++程序設(shè)計(jì)》","張小友","12軟件2班"},
{"《C#程序設(shè)計(jì)》","郭小城","11軟件3班"}};1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化二、知識準(zhǔn)備:
數(shù)組的這種初始化方式必須與聲明數(shù)組同時進(jìn)行,不能分開,下面的初始化方式是錯誤的:string[,]teach;teach={{"《C語言程序設(shè)計(jì)》","劉小華","13軟件1班"},{"《C++程序設(shè)計(jì)》","張小友","12軟件2班"},{"《C#程序設(shè)計(jì)》","郭小城","11軟件3班"}};1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化錯誤的初始化方式二、知識準(zhǔn)備:2)使用new關(guān)鍵字顯示初始化數(shù)組,只確定數(shù)組的長度,即數(shù)組元素的個數(shù),格式為:數(shù)組名=new數(shù)組類型[第一維長度,第二維長度];例如:int[,]datas=newint[3,5];或者:int[,]datas;datas=newint[3,5];1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(3)二維數(shù)組的初始化3)使用new關(guān)鍵字顯示初始化數(shù)組,不僅確定數(shù)組的長度,而且為所有的數(shù)組元素賦了初始值,如:int[,]datas=newint[3,5]{{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};int[,]datas;
datas=newint[3,5]{{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}
};或者數(shù)組的這種初始化方式要求給出的數(shù)組長度值必須與{}內(nèi)的初始值個數(shù)一致二、知識準(zhǔn)備:1、二維數(shù)組的聲明和使用(4)二維數(shù)組的元素的引用,輸入及輸出二維數(shù)組初始化后就可以通過下標(biāo)訪問其中的所有元素了,跟一維數(shù)組不同,一維數(shù)組的下標(biāo)只有一個整數(shù),而二維數(shù)組的下標(biāo)為兩個整數(shù),其使用格式為:數(shù)組名[行下標(biāo),列下標(biāo)]“行下標(biāo)”:就是二維數(shù)組中元素所在的行序號,從0開始,到數(shù)組的第一維的長度減1為止,即總行數(shù)減1為止?!傲邢聵?biāo)”:就是二維數(shù)組中元素所在的列序號,從0開始,到數(shù)組的第二維的長度減1為止,即總列數(shù)減1為止。三、任務(wù)分析:1、分析輸出多個學(xué)生成績單需要以下變量,如下表所示:序號變量名稱變量類型變量作用1scoresfloat二維數(shù)組,用于存放3個學(xué)生4門課成績、總分和平均分2namesstring一維數(shù)組,用于存放3個學(xué)生的姓名3no2string一維數(shù)組,用于存放3個學(xué)生的學(xué)號4iint循環(huán)變量,同時代表二維數(shù)組行索引5iint循環(huán)變量,同時代表二維數(shù)組列索引三、任務(wù)分析:2、利用雙重for循環(huán)通過二維數(shù)組索引(行索引號0~3,列索引好0~3)進(jìn)行輸入,列索引為4的數(shù)組元素用于存放總分,列索引為5的數(shù)組元素用于存放平均分,步驟如下:分別輸入3個人的姓名、學(xué)號和四門課成績,同時計(jì)算3個人的總分和平均分分別輸出3個人的成績在輸出成績的同時,判斷并輸出獎學(xué)金等級四、任務(wù)實(shí)施:1.啟動VisualStudio2012,建立名為“newstuscore”的控制臺應(yīng)用程序。2.在Program.cs文件中輸入如下代碼:首先是變量的定義:inti,j;string[]names=newstring[3];string[]nos=newstring[3];float[,]scores=newfloat[3,6];四、任務(wù)實(shí)施:二維數(shù)組中scores[i][4]和scores[i][5]元素存放的是學(xué)生的總分和平均分,所以需要對其進(jìn)行初始化,便于計(jì)算:for(i=0;i<3;i++){scores[i,4]=scores[i,5]=0;}四、任務(wù)實(shí)施:(1)分別輸入3個人的姓名、學(xué)號和四門課成績,同時計(jì)算總分和平均分for(i=0;i<3;i++){
Console.WriteLine("請輸入第"+(i+1).ToString()+"名學(xué)生的姓名和學(xué)號:");names[i]=Console.ReadLine();nos[i]=Console.ReadLine();Console.WriteLine("第"+(i+1).ToString()+"名學(xué)生成績輸入:");Console.WriteLine("請依次輸入英語、C#、數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)的成績:");for(j=0;j<4;j++){scores[i,j]=Convert.ToSingle(Console.ReadLine());scores[i,4]+=scores[i,j];}scores[i,5]=scores[i,4]/4;}輸入成績并計(jì)算總分計(jì)算平均分四、任務(wù)實(shí)施:(2)利用雙重for語句輸出完整成績表Console.WriteLine("學(xué)生成績?yōu)椋?);Console.WriteLine("姓名\t學(xué)號\t英語\tC#\t數(shù)學(xué)\t數(shù)據(jù)結(jié)構(gòu)總分\t平均分\t獎學(xué)金");
for(i=0;i<3;i++){Console.Write(names[i].ToString()+"\t");Console.Write(nos[i].ToString()+"\t");for(j=0;j<6;j++){Console.Write(scores[i,j].ToString()+"\t");}
if(scores[i,5]>=90){Console.WriteLine("一等獎學(xué)金");}四、任務(wù)實(shí)施:3.運(yùn)行程序。elseif(scores[i,5]>=80&&scores[i,5]<=90){Console.WriteLine("二等獎學(xué)金");}elseif(scores[i,5]>=70&&scores[i,5]<=80){Console.WriteLine("三等獎學(xué)金");}else{Console.WriteLine("無獎學(xué)金");}Console.WriteLine();}五、任務(wù)小結(jié):1、對二維數(shù)組元素的輸入和輸出,通常通過雙重for循環(huán)來實(shí)現(xiàn)。2、對單純二維數(shù)組元素的輸出也可以采用foreach語句,但在本任務(wù)中,因?yàn)橐袛嗒剬W(xué)金等級并輸出,同時對輸出的格式不好控制,采取了雙重for語句。intcount=0;foreach(floatscoreinscores){Console.Write(score.ToString()+"\t");count++;if(count%6==0)Console.WriteLine();}二維數(shù)組的輸出第6章數(shù)組與集合
——任務(wù)三學(xué)生選課
一、任務(wù)描述:創(chuàng)建一個窗體應(yīng)用程序,可以實(shí)現(xiàn)學(xué)生的選課,程序運(yùn)行效果如下圖所示:一、任務(wù)描述:當(dāng)單擊【初始化課程】按鈕時,文本框內(nèi)顯示初始化課程,如下圖所示;一、任務(wù)描述:當(dāng)單擊【全部清除】按鈕時,文本框內(nèi)所有課程被清空;當(dāng)單擊【添加課程】按鈕時,單擊對話框中的【確定】按鈕,文本框內(nèi)新增加其后文本框中輸入的課程,如下圖所示;一、任務(wù)描述:當(dāng)單擊【刪除課程】按鈕時,單擊對話框中的【確定】按鈕,文本框內(nèi)刪除其后文本框中輸入的課程,如圖所示;刪除“音樂鑒賞”二、任務(wù)準(zhǔn)備:1、ArrayList類AaaryList類位于System.Collections命名空間下,可以動態(tài)的添加和刪除元素。AaaryList類相當(dāng)于高級的動態(tài)數(shù)組,是Aaary類的升級版本,可以將AaaryList類看做是擴(kuò)充了功能的數(shù)組,但不等同于數(shù)組。與普通數(shù)組相比,AaaryList類具有下列功能:AaaryList的容量可以根據(jù)需要自動增加,而數(shù)組的容量是固定的。AaaryList提供添加、刪除和插入某一范圍元素的方法,而數(shù)組沒有。AaaryList提供將只讀和固定大小包裝返回到集合的方法,而數(shù)組沒有。AaaryList只能是一維形式,而數(shù)組可以為多維。二、任務(wù)準(zhǔn)備:1、ArrayList類AaaryList的三種聲明方式(1)默認(rèn)構(gòu)造器。以默認(rèn)16的大小來初始化數(shù)組,語法格式如下:ArrayListlist=newArrayList();//list是對象名(2)用指定大小初始化內(nèi)部數(shù)組。語法格式如下:ArrayListlist=newArrayList(n);//list是對象名,n為空間大小注意:使用ArrayList類時必須要引用System.Collections命名空間。二、任務(wù)準(zhǔn)備:1、ArrayList類(3)用一個ICollection對象來構(gòu)造,并將該集合的元素添加到ArrayList中。語法格式如下:ArrayListlist=newArrayList(arryname);//list是對象名,arryname為數(shù)組名創(chuàng)建一個控制臺應(yīng)用程序,聲明一個ArrayList對象和一個整型一維數(shù)組,將語句聲明的一維數(shù)組中的元素添加到ArrayList對象中。例:int[]array=newint[]{1,2,3,4,5,6,7,8,9,10};ArrayListlist=newArrayList(array);二、任務(wù)準(zhǔn)備:2、ArrayList類的常用屬性ArrayList類的常用屬性及說明如下表所示,最常用的是前3種屬性:編號屬
性說明1CapacityArrayList可以存儲的元素個數(shù)2CountArrayList實(shí)際包含的元素個數(shù)3Item獲取或設(shè)置指定索引處的元素4IsFixdSize獲取一個值,表明ArrayList是否具有固定大小5IsReadOnly獲取一個值,表明ArrayList是否為只讀6IsSynchronized獲取一個值,表明是否同步對ArrayList的訪問7SyncRoot獲取可以用于同步ArrayList訪問的對象二、任務(wù)準(zhǔn)備:3、ArrayList類的常用方法如果存在如下定義:int[]array=newint[]{1,2,3,4,5};ArrayListlist=newArrayList(array);(1)Add(Object):將參數(shù)Object添加到ArrayList的末尾處,該方法返回值為添加的Object的索引。list.Add(6);執(zhí)行完上面代碼后,ArrayList元素為:1,2,3,4,5,6。二、任務(wù)準(zhǔn)備:list.Insert(2,100);(2)Insert(index,value):在ArrayList中將value指定的Object插入到index指定的索引處。list.Remove(4);執(zhí)行完上面代碼后,ArrayList元素為:1,2,100,3,4,5。(3)Remove(value):從ArrayList種移除value指定的對象的第一個匹配項(xiàng)。執(zhí)行完上面代碼后,ArrayList元素為:1,2,3,5。3、ArrayList類的常用方法二、任務(wù)準(zhǔn)備:list.RemoveAt(0);(4)RemoveAt(index):從ArrayList種移除index指定索引處的元素。list.RemoveRange(0,2);執(zhí)行完上面代碼后,ArrayList元素為:2,3,4,5。(5)RemoveRange(index,count):從ArrayList種移除從index指定索引處開始的count個元素。執(zhí)行完上面代碼后,ArrayList元素為:3,4,5。3、ArrayList類的常用方法二、任務(wù)準(zhǔn)備:list.Clear();(6)Clear:從ArrayList種移除所有元素。執(zhí)行完上面代碼后,ArrayList里沒有任何元素。ArrayList類的方法還有很多,這里只列處理常用的,有興趣的同學(xué)可以參閱其他資料。3、ArrayList類的常用方法三、任務(wù)分析:1、本任務(wù)需要以下變量,如下表所示:2、窗體上主要控件的屬性及功能如下表所示:序號對象名稱類對象作用1listArrayListArrayList對象對象屬性設(shè)置功能TextBox1Name:tb_allAcceptsReturn=TrueAcceptsTab=True
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 假如給我三天光明讀后感范文
- 中秋節(jié)給員工的慰問信范文(7篇)
- 探究植物細(xì)胞吸水和失水說課稿
- 咳嗽課件小班教學(xué)課件
- 手工美食課件教學(xué)課件
- 如何使用課件教學(xué)課件
- 水泵工課件教學(xué)課件
- 天桃實(shí)驗(yàn)學(xué)校九年級上學(xué)期語文10月月考試卷
- 花溪區(qū)久安中學(xué)度七年級上學(xué)期語文期中質(zhì)量監(jiān)測試卷
- 小說發(fā)展課件教學(xué)課件
- 《語言學(xué)綱要》修訂版課后練習(xí)題
- 甲狀腺癌術(shù)后并發(fā)癥護(hù)理
- 2022年《江蘇省機(jī)動車維修費(fèi)用結(jié)算清單》格式
- 數(shù)字媒體技術(shù)專業(yè)群建設(shè)方案
- 機(jī)械畢業(yè)設(shè)計(jì)(PLC的恒溫箱控制系統(tǒng)設(shè)計(jì))
- 簡述火力發(fā)電廠生產(chǎn)過程課件
- 砷環(huán)境地球化學(xué)研究進(jìn)展
- 06竣工財務(wù)決算審計(jì)工作底稿(試行)
- 化驗(yàn)室化學(xué)試劑分類清單(參考模板)
- 三教”統(tǒng)一、和諧發(fā)展促進(jìn)學(xué)生健康成長的有效方式
- 材料成型概論 第四章 擠壓成型
評論
0/150
提交評論