版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)組和集合數(shù)組和集合(jh)第一頁(yè),共30頁(yè)。5.1.2 一維數(shù)組的動(dòng)態(tài)初始化一維數(shù)組的動(dòng)態(tài)初始化 動(dòng)態(tài)初始化需要借助動(dòng)態(tài)初始化需要借助new運(yùn)算符,為數(shù)組元素分配內(nèi)存空運(yùn)算符,為數(shù)組元素分配內(nèi)存空間,并為數(shù)組元素賦初值,數(shù)值類(lèi)型初始化為間,并為數(shù)組元素賦初值,數(shù)值類(lèi)型初始化為0,布爾類(lèi)型初,布爾類(lèi)型初始化為始化為false,字符串類(lèi)型初始化為,字符串類(lèi)型初始化為null。 動(dòng)態(tài)初始化數(shù)組的格式如下:動(dòng)態(tài)初始化數(shù)組的格式如下: 數(shù)組類(lèi)型數(shù)組類(lèi)型 數(shù)組名數(shù)組名=new 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型n元素值元素值0,元素值元素值1,元素值元素值n-1; 其中,其中,“數(shù)組類(lèi)型數(shù)組類(lèi)型”是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類(lèi)
2、型,是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類(lèi)型,n為為“數(shù)組數(shù)組長(zhǎng)度長(zhǎng)度”,可以是整型常量或變量,后面一層大括號(hào)里為初始值,可以是整型常量或變量,后面一層大括號(hào)里為初始值部分。部分。1. 不給定初始值的情況不給定初始值的情況 如果如果(rgu)不給出初始值部分,各元素取默認(rèn)值。例如:不給出初始值部分,各元素取默認(rèn)值。例如: int a = new int10; 該數(shù)組在內(nèi)存中各數(shù)組元素均取默認(rèn)值該數(shù)組在內(nèi)存中各數(shù)組元素均取默認(rèn)值0。 第1頁(yè)/共30頁(yè)第二頁(yè),共30頁(yè)。2. 給定初始值的情況給定初始值的情況如果給出初始值部分,各元素取相應(yīng)的初值,而且如果給出初始值部分,各元素取相應(yīng)的初值,而且給出的初值個(gè)數(shù)與給
3、出的初值個(gè)數(shù)與“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度”相等。此時(shí)可以省略相等。此時(shí)可以省略“數(shù)數(shù)組長(zhǎng)度組長(zhǎng)度”,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(shù)組中的全部,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(shù)組中的全部元素。例如:元素。例如:int a = new int101,2,3,4,5,6,7,8,9,10; 或或int a = new int1,2,3,4,5,6,7,8,9,10; 在這種情況下,不允許在這種情況下,不允許“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度”為變量為變量(binling),例如:例如: int n = 5; /定義變量定義變量(binling)nint myarr = new intn 1,2,3,4,5;/錯(cuò)誤錯(cuò)誤如果給出如果
4、給出“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度”,則初始值的個(gè)數(shù)應(yīng)與,則初始值的個(gè)數(shù)應(yīng)與“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度”相等,否則出錯(cuò)。例如:相等,否則出錯(cuò)。例如: int mya = new int2 1,2;/正確正確int mya = new int2 1,2,3; /錯(cuò)誤錯(cuò)誤int mya = new int2 1;/錯(cuò)誤錯(cuò)誤第2頁(yè)/共30頁(yè)第三頁(yè),共30頁(yè)。5.1.3 一維數(shù)組的靜態(tài)初始化一維數(shù)組的靜態(tài)初始化 靜態(tài)初始化數(shù)組時(shí),必須與數(shù)組定義結(jié)合在一起,否則會(huì)出靜態(tài)初始化數(shù)組時(shí),必須與數(shù)組定義結(jié)合在一起,否則會(huì)出錯(cuò)。靜態(tài)初始化數(shù)組的格式如下:錯(cuò)。靜態(tài)初始化數(shù)組的格式如下: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 數(shù)組名數(shù)組名=元素值元素值0
5、,元素值元素值1,元素值元素值n-1; 用這種方法對(duì)數(shù)組進(jìn)行初始化時(shí),無(wú)需說(shuō)明數(shù)組元素的個(gè)數(shù),用這種方法對(duì)數(shù)組進(jìn)行初始化時(shí),無(wú)需說(shuō)明數(shù)組元素的個(gè)數(shù),只需按順序列出數(shù)組中的全部元素即可,系統(tǒng)會(huì)自動(dòng)計(jì)算并分配只需按順序列出數(shù)組中的全部元素即可,系統(tǒng)會(huì)自動(dòng)計(jì)算并分配數(shù)組所需的內(nèi)存空間。數(shù)組所需的內(nèi)存空間。 例如,以下是對(duì)整型數(shù)組例如,以下是對(duì)整型數(shù)組myarr的靜態(tài)初始化:的靜態(tài)初始化: int myarr=1,2,3,4,5; 在這種情況在這種情況(qngkung)下,不能將數(shù)組定義和靜態(tài)初始化分下,不能將數(shù)組定義和靜態(tài)初始化分開(kāi),例如,以下是錯(cuò)誤的。開(kāi),例如,以下是錯(cuò)誤的。 int myarr;
6、 myarr=1,2,3,4,5;/錯(cuò)誤的數(shù)組的靜態(tài)初始錯(cuò)誤的數(shù)組的靜態(tài)初始化化第3頁(yè)/共30頁(yè)第四頁(yè),共30頁(yè)。5.1.4 訪問(wèn)一維數(shù)組中的元素訪問(wèn)一維數(shù)組中的元素 訪問(wèn)一維數(shù)組中的某個(gè)元素:名稱(chēng)訪問(wèn)一維數(shù)組中的某個(gè)元素:名稱(chēng)下標(biāo)或索引下標(biāo)或索引。 所有元素下標(biāo)從所有元素下標(biāo)從0開(kāi)始,到數(shù)組長(zhǎng)度減開(kāi)始,到數(shù)組長(zhǎng)度減1為止。例如,以下語(yǔ)句為止。例如,以下語(yǔ)句輸出數(shù)組輸出數(shù)組myarr的所有元素值:的所有元素值: for (i=0;i5;i+) Console.Write(0 ,ai); Console.WriteLine(); C#還提供還提供foreach語(yǔ)句。該語(yǔ)句提供一種簡(jiǎn)單、明了的方法
7、來(lái)循語(yǔ)句。該語(yǔ)句提供一種簡(jiǎn)單、明了的方法來(lái)循環(huán)訪問(wèn)數(shù)組的元素。例如,以下代碼環(huán)訪問(wèn)數(shù)組的元素。例如,以下代碼(di m)定義一個(gè)名稱(chēng)為定義一個(gè)名稱(chēng)為mya的數(shù)組,并用的數(shù)組,并用foreach語(yǔ)句循環(huán)訪問(wèn)該數(shù)組。語(yǔ)句循環(huán)訪問(wèn)該數(shù)組。 int mya = 1,2,3,4,5,6; foreach (int i in mya) System.Console.Write(0 ,i); Console.WriteLine();輸出為:輸出為:1 2 3 4 5 6。第4頁(yè)/共30頁(yè)第五頁(yè),共30頁(yè)。5.1.5 一組數(shù)組的越界一組數(shù)組的越界 若有如下語(yǔ)句定義并初始化數(shù)組若有如下語(yǔ)句定義并初始化數(shù)組ca:
8、 int ca = new int101,2,3,4,5,6,7,8,7,9,10; 數(shù)組數(shù)組ca的合法下標(biāo)為的合法下標(biāo)為09,如果程序中使用,如果程序中使用ca10或或ca50,則超過(guò)了數(shù)組規(guī)定的下標(biāo),因此越界了。則超過(guò)了數(shù)組規(guī)定的下標(biāo),因此越界了。C#系統(tǒng)系統(tǒng)(xtng)會(huì)提會(huì)提示以下出錯(cuò)信息。示以下出錯(cuò)信息。 未處理的異常未處理的異常: Syatem.IndexOutOfRangeException:索引超索引超出了數(shù)組界限。出了數(shù)組界限。第5頁(yè)/共30頁(yè)第六頁(yè),共30頁(yè)?!纠纠?.1】設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,采用二分查找】設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,采用二分查找(ch zho)方法在給定
9、的有序數(shù)組方法在給定的有序數(shù)組a中查找中查找(ch zho)用戶(hù)輸入的值,并用戶(hù)輸入的值,并提示相應(yīng)的查找提示相應(yīng)的查找(ch zho)結(jié)果。結(jié)果。using System;namespace Proj5_1 class Program static void Main(string args) double a=new double100,1.2,2.5,3.1,4.6,5.0,6.7,7.6,8.2,9.8; double k; int low=0,high=9,mid; Console.Write(k:); k=double.Parse(Console.ReadLine(); while
10、 (low k) high = mid - 1; else low = mid + 1; Console.WriteLine(未找到未找到0,k); 第6頁(yè)/共30頁(yè)第七頁(yè),共30頁(yè)。5.2 二維數(shù)組二維數(shù)組5.2.1 二維數(shù)組的定義二維數(shù)組的定義 定義二維數(shù)組的語(yǔ)法格式如下定義二維數(shù)組的語(yǔ)法格式如下(rxi): 數(shù)組類(lèi)型數(shù)組類(lèi)型, 數(shù)組名數(shù)組名; 其中,其中,“數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型”為為C#中合法的數(shù)據(jù)類(lèi)型,中合法的數(shù)據(jù)類(lèi)型,“數(shù)組數(shù)組名名”為為C#中合法的標(biāo)識(shí)符。中合法的標(biāo)識(shí)符。 例如,以下語(yǔ)句定義了例如,以下語(yǔ)句定義了3個(gè)二維數(shù)組,即整型數(shù)組個(gè)二維數(shù)組,即整型數(shù)組x、雙精度數(shù)組、雙精度數(shù)組y
11、和字符串?dāng)?shù)組和字符串?dāng)?shù)組z。 int, x; double, y; string, z; 對(duì)于多維數(shù)組,可以作類(lèi)似的推廣,例如,以下對(duì)于多維數(shù)組,可以作類(lèi)似的推廣,例如,以下語(yǔ)句定義了一個(gè)三維數(shù)組語(yǔ)句定義了一個(gè)三維數(shù)組p。 int, p;第7頁(yè)/共30頁(yè)第八頁(yè),共30頁(yè)。5.2.2 二維數(shù)組的動(dòng)態(tài)初始化二維數(shù)組的動(dòng)態(tài)初始化 動(dòng)態(tài)初始化二維數(shù)組的格式如下:動(dòng)態(tài)初始化二維數(shù)組的格式如下: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型, 數(shù)組名數(shù)組名=new 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型mn 元素值元素值0,0,元素值元素值0,1,元素值元素值0,n-1, 元素值元素值1,0,元素值元素值1,1,元素值元素值1,n-1, 元素值元素值m-
12、1,0,元素值元素值m-1,1,元素值元素值m-1,n-1 ; 其中,其中,“數(shù)組類(lèi)型數(shù)組類(lèi)型”是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類(lèi)型,是數(shù)組中數(shù)據(jù)元素的數(shù)據(jù)類(lèi)型,m、n分分別別(fnbi)為行數(shù)和列數(shù),即各維的長(zhǎng)度,可以是整型常量或變?yōu)樾袛?shù)和列數(shù),即各維的長(zhǎng)度,可以是整型常量或變量。量。 第8頁(yè)/共30頁(yè)第九頁(yè),共30頁(yè)。1. 不給定初始值的情況不給定初始值的情況 如果不給出初始值部分,各元素如果不給出初始值部分,各元素(yun s)取默認(rèn)值。例取默認(rèn)值。例如:如: int, x = new int23; 該數(shù)組各數(shù)組元素該數(shù)組各數(shù)組元素(yun s)均取默認(rèn)值均取默認(rèn)值0。第9頁(yè)/共30頁(yè)第十頁(yè),共3
13、0頁(yè)。2. 給定初始值的情況給定初始值的情況 如果給出初始值部分,各元素取相應(yīng)的初值,而且給出的初值個(gè)如果給出初始值部分,各元素取相應(yīng)的初值,而且給出的初值個(gè)數(shù)與對(duì)應(yīng)的數(shù)與對(duì)應(yīng)的“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度(chngd)”相等。此時(shí)可以省略相等。此時(shí)可以省略“數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度(chngd)”,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(shù)組中的全部元素。例如:,因?yàn)楹竺娴拇罄ㄌ?hào)中已列出了數(shù)組中的全部元素。例如: int, x = new int231,2,3,4,5,6; 或或 int, x = new int,1,2,3,4,5,6; 第10頁(yè)/共30頁(yè)第十一頁(yè),共30頁(yè)。5.2.3 二維數(shù)組的靜態(tài)初始化二維數(shù)組的靜態(tài)
14、初始化 靜態(tài)初始化數(shù)組時(shí),必須與數(shù)組定義靜態(tài)初始化數(shù)組時(shí),必須與數(shù)組定義(dngy)結(jié)合在一起,否結(jié)合在一起,否則會(huì)出錯(cuò)。靜態(tài)初始化數(shù)組的格式如下:則會(huì)出錯(cuò)。靜態(tài)初始化數(shù)組的格式如下: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型, 數(shù)組名數(shù)組名=元素值元素值0,0,元素值元素值0,1,元素值元素值0,n-1, 元素值元素值1,0,元素值元素值1,1,元素值元素值1,n-1, 元素值元素值m-1,0,元素值元素值m-1,1,元素值元素值m-1,n-1;例如,以下語(yǔ)句是對(duì)整型數(shù)組例如,以下語(yǔ)句是對(duì)整型數(shù)組myarr的靜態(tài)初始化。的靜態(tài)初始化。 int, myarr=1,2,3,4,5,6;第11頁(yè)/共30頁(yè)第十二頁(yè),共30
15、頁(yè)。5.2.4 訪問(wèn)二維數(shù)組中的元素訪問(wèn)二維數(shù)組中的元素 為了訪問(wèn)二維數(shù)組中的某個(gè)元素,需指定為了訪問(wèn)二維數(shù)組中的某個(gè)元素,需指定(zhdng)數(shù)組數(shù)組名稱(chēng)和數(shù)組中該元素的行下標(biāo)和列下標(biāo)。例如,以下語(yǔ)句名稱(chēng)和數(shù)組中該元素的行下標(biāo)和列下標(biāo)。例如,以下語(yǔ)句輸出數(shù)組輸出數(shù)組myarr的所有元素值。的所有元素值。 for (i=0;i2;i+) for (j=0;j3;j+ Console.Write(0 ,myarri,j); Console.WriteLine(); 對(duì)于多維數(shù)組,也可以使用對(duì)于多維數(shù)組,也可以使用foreach語(yǔ)句來(lái)循環(huán)訪問(wèn)每語(yǔ)句來(lái)循環(huán)訪問(wèn)每一個(gè)元素,例如。一個(gè)元素,例如。 in
16、t, myb = new int3, 2 1, 2, 3,4, 5,6; foreach (int i in myb) Console.Write(0 , i); Console.WriteLine();其輸出為:其輸出為:1 2 3 4 5 6。 第12頁(yè)/共30頁(yè)第十三頁(yè),共30頁(yè)?!纠纠?.2】 設(shè)計(jì)設(shè)計(jì)(shj)一個(gè)控制臺(tái)應(yīng)用程序,輸出九行楊輝三角形。一個(gè)控制臺(tái)應(yīng)用程序,輸出九行楊輝三角形。 using System;namespace Proj5_2 class Program const int N=10; static void Main(string args) int i,
17、j; int, a=new intN,N; for (i=1;iN;i+) /1列和對(duì)角線元素列和對(duì)角線元素(yun s)均為均為1 ai,i=1;ai,1=1; for (i=3;iN;i+)/求第求第3N行的元素行的元素(yun s)值值 for (j=2;j=i-1;j+) ai,j=ai-1,j-1+ai-1,j; for (i=1;iN;i+)/輸出數(shù)序輸出數(shù)序 for (j=1;j=i;j+) Console.Write(0,-2 ,ai,j); Console.WriteLine(); 第13頁(yè)/共30頁(yè)第十四頁(yè),共30頁(yè)。5.3 Array類(lèi)類(lèi)Array類(lèi)是所有類(lèi)是所有(suy
18、u)數(shù)組類(lèi)型的抽象基類(lèi)數(shù)組類(lèi)型的抽象基類(lèi)型。型。屬性屬性說(shuō)明說(shuō)明Length 獲得一個(gè)獲得一個(gè)32位整數(shù),該整數(shù)表示位整數(shù),該整數(shù)表示Array的所有維數(shù)中元素的總的所有維數(shù)中元素的總數(shù)。數(shù)。LongLength 獲得一個(gè)獲得一個(gè)64位整數(shù),該整數(shù)表示位整數(shù),該整數(shù)表示Array的所有維數(shù)中元素的總的所有維數(shù)中元素的總數(shù)。數(shù)。Rank 獲取獲取Array的秩(維數(shù))。的秩(維數(shù))。第14頁(yè)/共30頁(yè)第十五頁(yè),共30頁(yè)。方法方法說(shuō)明說(shuō)明BinarySearch 靜態(tài)方法。使用二進(jìn)制搜索算法在一維的排序靜態(tài)方法。使用二進(jìn)制搜索算法在一維的排序Array中搜索值。中搜索值。 Copy 靜態(tài)方法。將一
19、個(gè)靜態(tài)方法。將一個(gè)Array的一部分元素復(fù)制到另一個(gè)的一部分元素復(fù)制到另一個(gè)Array中,并根據(jù)中,并根據(jù)需要執(zhí)行類(lèi)型強(qiáng)制轉(zhuǎn)換和裝箱。需要執(zhí)行類(lèi)型強(qiáng)制轉(zhuǎn)換和裝箱。 CopyTo 非靜態(tài)方法。將當(dāng)前一維非靜態(tài)方法。將當(dāng)前一維Array的所有元素復(fù)制到指定的一維的所有元素復(fù)制到指定的一維Array中。中。 Find 靜態(tài)方法。搜索與指定謂詞定義的條件匹配的元素,然后返回整個(gè)靜態(tài)方法。搜索與指定謂詞定義的條件匹配的元素,然后返回整個(gè)Array中的第一個(gè)匹配項(xiàng)。中的第一個(gè)匹配項(xiàng)。 ForEach 靜態(tài)方法。對(duì)指定數(shù)組的每個(gè)元素執(zhí)行指定操作。靜態(tài)方法。對(duì)指定數(shù)組的每個(gè)元素執(zhí)行指定操作。 GetLengt
20、h 非靜態(tài)方法。獲取一個(gè)非靜態(tài)方法。獲取一個(gè)32位整數(shù),該整數(shù)表示位整數(shù),該整數(shù)表示Array的指定維中的元素的指定維中的元素?cái)?shù)。數(shù)。 GetLongLength 非靜態(tài)方法。獲取一個(gè)非靜態(tài)方法。獲取一個(gè)64位整數(shù),該整數(shù)表示位整數(shù),該整數(shù)表示Array的指定維中的元素的指定維中的元素?cái)?shù)。數(shù)。 GetLowerBound 非靜態(tài)方法。獲取非靜態(tài)方法。獲取Array中指定維度的下限。中指定維度的下限。 GetUpperBound 非靜態(tài)方法。獲取非靜態(tài)方法。獲取Array的指定維度的上限。的指定維度的上限。 GetValue 非靜態(tài)方法。獲取當(dāng)前非靜態(tài)方法。獲取當(dāng)前Array中指定元素的值。中指
21、定元素的值。 IndexOf 靜態(tài)方法。返回一維靜態(tài)方法。返回一維Array或部分或部分Array中某個(gè)值第一個(gè)匹配項(xiàng)的索引。中某個(gè)值第一個(gè)匹配項(xiàng)的索引。 Resize 靜態(tài)方法。將數(shù)組的大小更改為指定的新大小。靜態(tài)方法。將數(shù)組的大小更改為指定的新大小。 Reverse 靜態(tài)方法。反轉(zhuǎn)一維靜態(tài)方法。反轉(zhuǎn)一維Array或部分或部分Array中元素的順序。中元素的順序。 SetValue 非靜態(tài)方法。將當(dāng)前非靜態(tài)方法。將當(dāng)前Array中的指定元素設(shè)置為指定值。中的指定元素設(shè)置為指定值。 Sort 靜態(tài)方法。對(duì)一維靜態(tài)方法。對(duì)一維Array對(duì)象中的元素進(jìn)行排序。對(duì)象中的元素進(jìn)行排序。 第15頁(yè)/共3
22、0頁(yè)第十六頁(yè),共30頁(yè)?!纠纠?.3】 設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,產(chǎn)生設(shè)計(jì)一個(gè)控制臺(tái)應(yīng)用程序,產(chǎn)生(chnshng)10個(gè)個(gè)019的隨機(jī)整數(shù),對(duì)其遞增排序并輸出。的隨機(jī)整數(shù),對(duì)其遞增排序并輸出。using System;namespace Proj5_3 class Program static void Main(string args) int i,k; int myarr = new int10; /定義一個(gè)定義一個(gè)(y )一維數(shù)組一維數(shù)組 Random randobj = new Random(); /定義一個(gè)定義一個(gè)(y )隨機(jī)對(duì)象隨機(jī)對(duì)象 for (i = myarr.GetLow
23、erBound(0); i = myarr.GetUpperBound(0); i+) k=randobj.Next() % 20; /返回一個(gè)返回一個(gè)(y )019的正整數(shù)的正整數(shù) myarr.SetValue(k, i); /給數(shù)組元素賦值給數(shù)組元素賦值 Console.Write(隨機(jī)數(shù)序隨機(jī)數(shù)序:); for (i = myarr.GetLowerBound(0); i =myarr.GetUpperBound(0); i+) Console.Write(0 , myarr.GetValue(i); Console.WriteLine(); Array.Sort(myarr); /數(shù)組
24、排序數(shù)組排序 Console.Write(排序數(shù)序排序數(shù)序:); for (i = myarr.GetLowerBound(0); i =myarr.GetUpperBound(0); i+) Console.Write(0 , myarr.GetValue(i); Console.WriteLine(); 第16頁(yè)/共30頁(yè)第十七頁(yè),共30頁(yè)。5.4 交錯(cuò)交錯(cuò)(jiocu)數(shù)組數(shù)組 交錯(cuò)數(shù)組:元素為數(shù)組的數(shù)組,元素的維度和大小可以不同。多維交錯(cuò)數(shù)組:元素為數(shù)組的數(shù)組,元素的維度和大小可以不同。多維數(shù)組:元素的維度和大小的均相同。數(shù)組:元素的維度和大小的均相同。5.4.1 交錯(cuò)數(shù)組的定義和初始
25、化交錯(cuò)數(shù)組的定義和初始化以下語(yǔ)句定義了一個(gè)以下語(yǔ)句定義了一個(gè)(y )由由3個(gè)元素組成的一維數(shù)組,其中每個(gè)元個(gè)元素組成的一維數(shù)組,其中每個(gè)元素都是一個(gè)素都是一個(gè)(y )一維整數(shù)數(shù)組:一維整數(shù)數(shù)組:int arrj = new int3;必須初始化必須初始化arrj的元素后才可以使用它。可以如下所示初始化該元素:的元素后才可以使用它??梢匀缦滤境跏蓟撛兀篴rrj0 = new int5;arrj1 = new int4;arrj2 = new int2;第17頁(yè)/共30頁(yè)第十八頁(yè),共30頁(yè)。5.4.2 訪問(wèn)交錯(cuò)數(shù)組中的元素訪問(wèn)交錯(cuò)數(shù)組中的元素 交錯(cuò)數(shù)組元素的訪問(wèn)方式與多維數(shù)組類(lèi)似,通常使用交
26、錯(cuò)數(shù)組元素的訪問(wèn)方式與多維數(shù)組類(lèi)似,通常使用Length方法方法返回包含在交錯(cuò)數(shù)組中的數(shù)組的數(shù)目返回包含在交錯(cuò)數(shù)組中的數(shù)組的數(shù)目(shm),例如,以下程序定義,例如,以下程序定義一個(gè)交錯(cuò)數(shù)組一個(gè)交錯(cuò)數(shù)組myarr并初始化,最后輸出所有元素的值。并初始化,最后輸出所有元素的值。int myarr = new int3;myarr0 = new int 1,2,3,4,5,6;myarr1 = new int 7,8,9,10;myarr2 = new int 11,12;for (int i = 0; i myarr.Length; i+)Console.Write(myarr(0): , i)
27、; for (int j = 0; j myarri.Length; j+) Console.Write(0 , myarrij); Console.WriteLine();程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下:myarr(0): 1 2 3 4 5 6myarr(1): 7 8 9 10myarr(2): 11 12第18頁(yè)/共30頁(yè)第十九頁(yè),共30頁(yè)。5.5 ArrayList類(lèi)類(lèi) ArrayList類(lèi)(在命名空間類(lèi)(在命名空間System.Collections中),用中),用于建立不定長(zhǎng)度的數(shù)組,由于該類(lèi)數(shù)組的數(shù)據(jù)類(lèi)型為于建立不定長(zhǎng)度的數(shù)組,由于該類(lèi)數(shù)組的數(shù)據(jù)類(lèi)型為Object,其長(zhǎng)度不
28、固定,可以其長(zhǎng)度不固定,可以(ky)將其對(duì)象看成是一個(gè)集合。將其對(duì)象看成是一個(gè)集合。定義定義ArrayList類(lèi)的對(duì)象的語(yǔ)法格式如下:類(lèi)的對(duì)象的語(yǔ)法格式如下:ArrayList 數(shù)組名數(shù)組名 = new ArrayList();例如,以下語(yǔ)句定義一個(gè)例如,以下語(yǔ)句定義一個(gè)ArrayList類(lèi)的對(duì)象類(lèi)的對(duì)象myarr,可以,可以(ky)將它作為一個(gè)數(shù)組使用:將它作為一個(gè)數(shù)組使用:ArrayList myarr = new ArrayList();第19頁(yè)/共30頁(yè)第二十頁(yè),共30頁(yè)。屬性屬性說(shuō)明說(shuō)明 Capacity 獲取或設(shè)置獲取或設(shè)置ArrayList可包含的元素?cái)?shù)??砂脑?cái)?shù)。Coun
29、t 獲取獲取ArrayList中實(shí)際包含的元素?cái)?shù)。中實(shí)際包含的元素?cái)?shù)。Item 獲取或設(shè)置指定索引處的元素。獲取或設(shè)置指定索引處的元素。第20頁(yè)/共30頁(yè)第二十一頁(yè),共30頁(yè)。方法方法說(shuō)明說(shuō)明 Add 將對(duì)象添加到將對(duì)象添加到ArrayList的結(jié)尾處。的結(jié)尾處。 AddRange 將一個(gè)將一個(gè)ICollection對(duì)象的元素添加到對(duì)象的元素添加到ArrayList的末尾。的末尾。 BinarySearch 使用二分檢索算法在已排序的使用二分檢索算法在已排序的ArrayList或它的一部分中查找特定元素?;蛩囊徊糠种胁檎姨囟ㄔ?。 Clear 從從ArrayList中移除所有元素。中移除所有
30、元素。 Clone 創(chuàng)建創(chuàng)建ArrayList的淺表副本。的淺表副本。 Contains 確定某元素是否在確定某元素是否在ArrayList中。中。 CopyTo 將將ArrayList或它的一部分復(fù)制到一維數(shù)組中?;蛩囊徊糠謴?fù)制到一維數(shù)組中。 GetRange 返回返回 ArrayList,它表示源,它表示源ArrayList中元素的子集。中元素的子集。 IndexOf 返回返回ArrayList或它的一部分中某個(gè)值的第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引?;蛩囊徊糠种心硞€(gè)值的第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。 Insert 將元素插入將元素插入ArrayList的指定索引處。的指定索引處。 Inse
31、rtRange 將集合中的某個(gè)元素插入將集合中的某個(gè)元素插入ArrayList的指定索引處。的指定索引處。 LastIndexOf 返回返回ArrayList或它的一部分中某個(gè)值的最后一個(gè)匹配項(xiàng)的從零開(kāi)始的索或它的一部分中某個(gè)值的最后一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。引。 Remove 從從ArrayList中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。 RemoveAt 移除移除ArrayList的指定索引處的元素。的指定索引處的元素。 RemoveRange 從從ArrayList中移除一定范圍的元素。中移除一定范圍的元素。 Reverse 將將ArrayList或它的一部分中元素
32、的順序反轉(zhuǎn)?;蛩囊徊糠种性氐捻樞蚍崔D(zhuǎn)。 SetRange 將集合中的元素復(fù)制到將集合中的元素復(fù)制到ArrayList中一定范圍的元素上。中一定范圍的元素上。 Sort 對(duì)對(duì)ArrayList或它的一部分中的元素進(jìn)行排序?;蛩囊徊糠种械脑剡M(jìn)行排序。 ToArray 將將ArrayList的元素復(fù)制到新數(shù)組中。的元素復(fù)制到新數(shù)組中。 ToString 返回表示當(dāng)前返回表示當(dāng)前Object的的String。TrimToSize 將容量設(shè)置為將容量設(shè)置為ArrayList中元素的實(shí)際數(shù)目。中元素的實(shí)際數(shù)目。 第21頁(yè)/共30頁(yè)第二十二頁(yè),共30頁(yè)?!纠纠?.4】 定義一個(gè)定義一個(gè)ArrayL
33、ist對(duì)象,用于存放若干個(gè)姓名,對(duì)其對(duì)象,用于存放若干個(gè)姓名,對(duì)其進(jìn)行排序進(jìn)行排序(pi x),并輸出排序,并輸出排序(pi x)后的結(jié)果。后的結(jié)果。using System;using System.Collections; /新增新增namespace Proj5_4 class Program static void Main(string args) ArrayList myarr = new ArrayList(); myarr.Add(Smith); myarr.Add(Mary); myarr.Add(Dava); myarr.Add(John); Console.Write(排
34、序排序(pi x)前序列前序列:); foreach(String sname in myarr) Console.Write(sname + ); Console.WriteLine(); myarr.Sort(); Console.Write(排序排序(pi x)前序列前序列:); foreach(String sname in myarr) Console.Write(sname + ); Console.WriteLine(); 第22頁(yè)/共30頁(yè)第二十三頁(yè),共30頁(yè)。5.6 List類(lèi)類(lèi) List類(lèi)是類(lèi)是ArrayList類(lèi)的泛型等效類(lèi),該類(lèi)使用大小可按需動(dòng)類(lèi)的泛型等效類(lèi),該類(lèi)使用大
35、小可按需動(dòng)態(tài)增加的數(shù)組實(shí)現(xiàn)態(tài)增加的數(shù)組實(shí)現(xiàn)IList泛型接口。泛型接口。 定義定義List類(lèi)的對(duì)象的語(yǔ)法格式如下:類(lèi)的對(duì)象的語(yǔ)法格式如下: List 數(shù)組名數(shù)組名 = new List(); 例如,以下語(yǔ)句定義一個(gè)例如,以下語(yǔ)句定義一個(gè)(y )List類(lèi)的對(duì)象類(lèi)的對(duì)象myset,其,其元素類(lèi)型為元素類(lèi)型為string,可以將它作為一個(gè),可以將它作為一個(gè)(y )數(shù)組使用:數(shù)組使用: List myset = new List();第23頁(yè)/共30頁(yè)第二十四頁(yè),共30頁(yè)。屬性屬性說(shuō)明說(shuō)明 Capacity 獲取或設(shè)置該內(nèi)部數(shù)據(jù)結(jié)構(gòu)在不調(diào)整大小的情況下獲取或設(shè)置該內(nèi)部數(shù)據(jù)結(jié)構(gòu)在不調(diào)整大小的情況下能夠
36、保存的元素總數(shù)。能夠保存的元素總數(shù)。Count 獲取獲取List中實(shí)際包含的元素?cái)?shù)。中實(shí)際包含的元素?cái)?shù)。Item 獲取或設(shè)置指定索引處的元素。獲取或設(shè)置指定索引處的元素。第24頁(yè)/共30頁(yè)第二十五頁(yè),共30頁(yè)。方法方法 說(shuō)明說(shuō)明 Add 將對(duì)象添加到將對(duì)象添加到List的結(jié)尾處。的結(jié)尾處。 AddRange 將指定集合的元素添加到將指定集合的元素添加到List的末尾。的末尾。 BinarySearch 使用對(duì)分檢索算法在已排序的使用對(duì)分檢索算法在已排序的List或它的一部分中查找特定或它的一部分中查找特定 元素。元素。 Clear 從從List中移除所有元素。中移除所有元素。 Contains
37、 確定某元素是否在確定某元素是否在List中。中。 CopyTo 將將List或它的一部分復(fù)制到一個(gè)數(shù)組中?;蛩囊徊糠謴?fù)制到一個(gè)數(shù)組中。 Exists 確定確定List是否包含與指定謂詞所定義是否包含與指定謂詞所定義(dngy)的條件相匹配的元素。的條件相匹配的元素。 Find 搜索與指定謂詞所定義搜索與指定謂詞所定義(dngy)的條件相匹配的元素,并返回整個(gè)的條件相匹配的元素,并返回整個(gè) List中的第一個(gè)匹配元素。中的第一個(gè)匹配元素。 FindAll 檢索與指定謂詞所定義檢索與指定謂詞所定義(dngy)的條件相匹配的所有元素。的條件相匹配的所有元素。 FindIndex 搜索與指定謂詞所
38、定義搜索與指定謂詞所定義(dngy)的條件相匹配的元素,返回的條件相匹配的元素,返回List或它或它 的一部分中第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。的一部分中第一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。 FindLast 搜索與指定謂詞所定義搜索與指定謂詞所定義(dngy)的條件相匹配的元素,并返回整個(gè)的條件相匹配的元素,并返回整個(gè) List中的最后一個(gè)匹配元素。中的最后一個(gè)匹配元素。 第25頁(yè)/共30頁(yè)第二十六頁(yè),共30頁(yè)。FindLastIndex 搜索與指定謂詞所定義的條件相匹配的元素,返回搜索與指定謂詞所定義的條件相匹配的元素,返回List或它的或它的 一部分中最后一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。一部分中最后
39、一個(gè)匹配項(xiàng)的從零開(kāi)始的索引。 ForEach 對(duì)對(duì)List的每個(gè)元素執(zhí)行指定操作。的每個(gè)元素執(zhí)行指定操作。 IndexOf 返回返回List或它的一部分中某個(gè)值的第一個(gè)匹配項(xiàng)的從零開(kāi)始的或它的一部分中某個(gè)值的第一個(gè)匹配項(xiàng)的從零開(kāi)始的 索引。索引。 Insert 將元素插入將元素插入List的指定索引處。的指定索引處。 InsertRange 將集合中的某個(gè)元素插入將集合中的某個(gè)元素插入List的指定索引處。的指定索引處。 LastIndexOf 返回返回List或它的一部分中某個(gè)值的最后一個(gè)匹配項(xiàng)的從零開(kāi)始或它的一部分中某個(gè)值的最后一個(gè)匹配項(xiàng)的從零開(kāi)始 的索引。的索引。 Remove 從從List中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。中移除特定對(duì)象的第一個(gè)匹配項(xiàng)。 RemoveAll 移除與指定的謂詞所定義的條件相匹配的所有元素。移除與指定的謂詞所定義的條件相匹配的所有元素。 RemoveAt 移除移除List的指定索引處的元素。的指定索引處的元素。 RemoveRange 從從List中移除一定范圍的元素。中移除一定范圍的元素。 Reverse 將將List或它的一部分中元素的順序或它的一部分中元素的順序(shnx)反轉(zhuǎn)。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆新疆生產(chǎn)建設(shè)兵團(tuán)二師華山中學(xué)高三第二次適應(yīng)性考試數(shù)學(xué)試題
- 2024屆上海市西南模范中學(xué)高考模擬試卷(數(shù)學(xué)試題文)試卷
- 數(shù)據(jù)結(jié)構(gòu)與算法 習(xí)題及解答 機(jī)械自考版
- 感恩班會(huì)主題課件
- 2024年陜西c1客運(yùn)從業(yè)資格證考試
- 2024年上??瓦\(yùn)資格證摸擬考試試題及答案
- 2024年廣元客車(chē)上崗證模擬考試
- 2024年?yáng)|莞客運(yùn)資格證題庫(kù)及答案
- 2024年湖南客運(yùn)從業(yè)資格證考試題庫(kù)c1
- 2024年重慶客運(yùn)從業(yè)資格證考試題目及答案
- GB/T 10454-2000集裝袋
- FZ/T 73020-2019針織休閑服裝
- 交工技術(shù)文件編制規(guī)定
- 沙盤(pán)游戲心理治療培訓(xùn)課件
- 進(jìn)化生物學(xué)-人類(lèi)的起源課件
- 四年級(jí)語(yǔ)文上冊(cè)課件 - 21古詩(shī)三首 涼州詞 (共16張PPT) 人教部編版
- 2022秋國(guó)開(kāi)公共關(guān)系學(xué)形考任務(wù)3試題及答案
- 物流概論練習(xí)題及答案
- 空白教案模板(表格形式-已排版)
- 小學(xué)數(shù)學(xué)北師大三年級(jí)上冊(cè)三加與減里程表專(zhuān)項(xiàng)練習(xí)教案
- 電流與電壓和電阻實(shí)驗(yàn)報(bào)告單
評(píng)論
0/150
提交評(píng)論