




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
6/23/202510:42:42AMJava程序設(shè)計(jì)1第4章
數(shù)
組數(shù)組是一種用來存儲(chǔ)一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),可以通過整型下標(biāo)訪問數(shù)組中的每一個(gè)元素,它是Java的一種構(gòu)造數(shù)據(jù)類型。本章主要學(xué)習(xí)數(shù)組的定義與數(shù)組的使用。4.1數(shù)組簡(jiǎn)介運(yùn)行程序時(shí)經(jīng)常需要存儲(chǔ)大量的數(shù)據(jù),例如,讀入100個(gè)數(shù)并計(jì)算它們的平均值,找出有多少個(gè)數(shù)大于平均值。
6/23/202510:42:42AMJava程序設(shè)計(jì)2在使用數(shù)組時(shí),涉及以下幾個(gè)術(shù)語:(1)數(shù)組名。數(shù)組名應(yīng)該符合Java語言標(biāo)語識(shí)符的命名規(guī)則。(2)數(shù)組的類型。因?yàn)閿?shù)組是用來存儲(chǔ)相同類型的數(shù)據(jù),因此數(shù)組的類型就是其所存儲(chǔ)的元素的數(shù)據(jù)類型。(3)數(shù)組的長(zhǎng)度。數(shù)組的長(zhǎng)度是指數(shù)組中可以容納的元素的個(gè)數(shù),而不是數(shù)組所占用的字節(jié)數(shù)。
6/23/202510:42:42AMJava程序設(shè)計(jì)34.2一維數(shù)組在使用數(shù)組之前先要聲明數(shù)組,元素在數(shù)組中的相對(duì)位置由下標(biāo)來指明。一位數(shù)組的特點(diǎn)是數(shù)組元素只有一個(gè)下標(biāo)。4.2.1聲明數(shù)組變量要在程序中使用數(shù)組,首先需要聲明引用數(shù)組的變量,并指明變量可引用的數(shù)組類型。下面是聲明數(shù)組的語法:dataType[]arrayRefVar;(數(shù)據(jù)類型[]數(shù)組名;)6/23/202510:42:42AMJava程序設(shè)計(jì)44.2.2創(chuàng)建數(shù)組不同于以前基本數(shù)據(jù)類型變量的說明,說明一個(gè)數(shù)組變量時(shí)并不在內(nèi)存中給數(shù)組分配任何空間,僅僅創(chuàng)建了一個(gè)引用數(shù)組的存儲(chǔ)地址。如果變量沒指向任何數(shù)組,則變量的值為null。除非數(shù)組已經(jīng)創(chuàng)建,否則不能給它分配任何元素。
數(shù)組名=new數(shù)據(jù)類型[數(shù)組大小];
6/23/202510:42:42AMJava程序設(shè)計(jì)54.2.3數(shù)組的大小和默認(rèn)值給數(shù)組分配空間時(shí),必須通過指定存儲(chǔ)元素的個(gè)數(shù)來約定數(shù)組的大小。數(shù)組創(chuàng)建之后就不能再修改它的大小。可以使用myList.length方法求得數(shù)組myList的大小,比如myList.length為10。數(shù)組創(chuàng)建后,它的元素賦予默認(rèn)值,數(shù)值型基本數(shù)據(jù)類型默認(rèn)值為0,char型為’\u0000’,boolean型為false。
6/23/202510:42:42AMJava程序設(shè)計(jì)64.2.4數(shù)組下標(biāo)變量數(shù)組的元素通過下標(biāo)來訪問。數(shù)組下標(biāo)是基于0的(0-based),它們從0開始到arrayobject.length-1結(jié)束。在Java中,數(shù)組的下標(biāo)必須是整數(shù)或整數(shù)表達(dá)式。
6/23/202510:42:42AMJava程序設(shè)計(jì)74.2.5數(shù)組初始化
Java有一個(gè)簡(jiǎn)潔的記法,叫做數(shù)組初始化(arrayinitializer);可以將聲明數(shù)組、創(chuàng)建數(shù)組和初始化數(shù)組結(jié)合到一個(gè)語句中,其語法如下:數(shù)據(jù)類型[]數(shù)組變量={直接量0,直接量1,…,直接量k};
6/23/202510:42:42AMJava程序設(shè)計(jì)8
處理數(shù)組元素時(shí),會(huì)經(jīng)常使用for循環(huán),這是因?yàn)椋簂
所有的數(shù)組元素都是同一類型的,它們可以使用for循環(huán)以同樣的方式一起處理。由于數(shù)組的大小已知,使用for循環(huán)比較合理。
6/23/202510:42:42AMJava程序設(shè)計(jì)94.2.6把數(shù)組傳遞給方法把數(shù)組傳遞給一個(gè)方法,應(yīng)使用不加方括號(hào)的數(shù)組名。這里指的是整個(gè)數(shù)組而不是數(shù)組中的單個(gè)元素。例如,如果數(shù)組hourlyTemperatures已聲明如下:
inthourlyTemperatures[]=newint[24];那么方法調(diào)用
modifyArray(hourlyTemperatures);就把數(shù)組hourlyTemperatures傳遞給方法modifyArray。
6/23/202510:42:42AMJava程序設(shè)計(jì)104.2.7一維數(shù)組的排序排序,是使數(shù)據(jù)按某種順序進(jìn)行排列,如遞增順序(升序)或遞減順序(降序)等。這是計(jì)算機(jī)數(shù)據(jù)處理中應(yīng)用最多的一項(xiàng)操作。
6/23/202510:42:42AMJava程序設(shè)計(jì)11publicclassch0403{publicstaticvoidmain(String[]args){inti=0,j=0;intintArray[]={35,22,51,10,60};intlen=intArray.length;for(i=1;i<len;i++)for(j=0;j<len-i-1;j++)if(intArray[j]>intArray[j+1]);{intt=intArray[j];intArray[j]=intArray[j+1];intArray[j+1]=t;}System.out.println("排序后的結(jié)果為:");for(i=0;i<len;i++)System.out.print(intArray[i]+"");}}6/23/202510:42:42AMJava程序設(shè)計(jì)124.2多維數(shù)組4.2.1聲明多維數(shù)組變量和創(chuàng)建多維數(shù)組下面是聲明二維數(shù)組的語法:數(shù)據(jù)類型[][]數(shù)組引用變量;或數(shù)據(jù)類型
型組引用變量[][];
//這種方式是正確的,但不推薦
matrix=newint[5][5];matrix[2][1]=7;
6/23/202510:42:42AMJava程序設(shè)計(jì)134.2.2求多維數(shù)組的長(zhǎng)度多維數(shù)組實(shí)際上是每個(gè)元素為數(shù)組的數(shù)組。二維數(shù)組是以數(shù)組為元素構(gòu)成的數(shù)組,它的每個(gè)元素是一個(gè)一維數(shù)組。三維數(shù)組是二維數(shù)組構(gòu)成的數(shù)組,該二維數(shù)組又是一維數(shù)組的數(shù)組。數(shù)組x的長(zhǎng)度是指數(shù)組中元素的個(gè)數(shù)。可以用x..length求得。元素x[0],x[1],…,x[x.length-1]也是數(shù)組,它們的長(zhǎng)度可以利用x[0].length,x[1].length,…,x[x.length-1].length求得。
6/23/202510:42:42AMJava程序設(shè)計(jì)14publicclassch0404{publicstaticvoidmain(Stringargs[]){ //學(xué)生的答案
char[][]answers={{'A','B','A','C','C','D','E','E','A','D'},{'D','B','A','B','C','A','E','E','A','D'},{'E','D','D','A','C','B','E','E','A','D'},{'C','B','A','E','D','C','E','E','A','D'},{'A','B','D','C','C','D','E','E','A','D'},{'B','B','E','C','C','D','E','E','A','D'},{'B','B','A','C','C','D','E','E','A','D'},{'E','B','E','C','C','D','E','E','A','D'}};
//問題的正確答案
char[]keys={'D','B','D','C','C','D','A','E','A','D'};
for(inti=0;i<answers.length;i++){intcorrectCount=0;for(intj=0;j<answers[i].length;j++){if(answers[i][j]==keys[j])correctCount++;}
System.out.println("Student"+i+"'scorrectcountis"+correctCount);}}}6/23/202510:42:42AMJava程序設(shè)計(jì)154.3數(shù)組的查找查找(searching)是在數(shù)組中尋找特定元素的過程,例如,判斷成績(jī)列表中是否包含某一特定的分?jǐn)?shù)。像排序一樣,查找是計(jì)算機(jī)程序設(shè)計(jì)中常見的工作。有很多算法和數(shù)據(jù)結(jié)構(gòu)用于查找。在本節(jié)中,將討論兩種常見的算法,線性查找(linearsearching)和二分查找(binarysearching)。6/23/202510:42:42AMJava程序設(shè)計(jì)164.3.1線性查找法線性查找法是將要查找的關(guān)鍵字key與數(shù)組list[]中的元素逐個(gè)進(jìn)行比較,直到在列表中找到與關(guān)鍵字匹配的元素,或者查完列表也沒有找到。如果匹配成功,線性查找法返回與關(guān)鍵字匹配的元素在數(shù)組中的下標(biāo),如果沒有找到,則返回-1。
6/23/202510:42:42AMJava程序設(shè)計(jì)174.3.2二分查找法二分查找法是另一種常見的查找法。使用二分查找法的前提條件是數(shù)組元素必須已經(jīng)排序。不失一般性,假設(shè)數(shù)組按升序排列。二分查找法首先將關(guān)鍵字與數(shù)組的中間元素比較,考慮下面三種情況:l
如果關(guān)鍵字比中間元素小,那么只需在前一半數(shù)組元素中查找。l
如果關(guān)鍵字和中間元素相等,則匹配成功,查找結(jié)束。如果關(guān)鍵字比中間元素大,則只需在后一半數(shù)組元素中查找
6/23/202510:42:42AMJava程序設(shè)計(jì)18publicclassBinarySearchpublicstaticintbinarySearch(int[]list,intkey){intlow=0; inthigh=list.length-1;
while(high>=low){intmid=(low+high)/2;if(key<list[
溫馨提示
- 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)活動(dòng)方案
- 公司脫口秀比賽活動(dòng)方案
- 公司每月線上活動(dòng)方案
- 公司節(jié)假日福利策劃方案
- 公司本科生團(tuán)建活動(dòng)方案
- 公司組織出行活動(dòng)方案
- 公司秋游爬山活動(dòng)方案
- 公司盛典活動(dòng)策劃方案
- 公司端午粽子活動(dòng)方案
- 公司春節(jié)營(yíng)銷活動(dòng)方案
- 醫(yī)學(xué)資料 2023版《中國(guó)慢性腎臟病患者高血壓管理指南》解讀學(xué)習(xí)課件
- 體檢中心質(zhì)量控制指南
- 雙重預(yù)防機(jī)制工作實(shí)施方案
- 2025年標(biāo)準(zhǔn)離婚協(xié)議書范本完整版
- 跨國(guó)知識(shí)產(chǎn)權(quán)爭(zhēng)議解決的國(guó)際合作與協(xié)調(diào)
- 幼兒園預(yù)防中暑課件
- 2002版《水利工程施工機(jī)械臺(tái)時(shí)費(fèi)定額》
- 高分子物理模擬試題+參考答案
- 廢棄物焚燒爐安全操作規(guī)程
- 2025年業(yè)務(wù)員個(gè)人工作計(jì)劃樣本(3篇)
- 職業(yè)技術(shù)學(xué)院“第二課堂成績(jī)單”制度實(shí)施辦法
評(píng)論
0/150
提交評(píng)論