![Java程序設(shè)計(jì)進(jìn)階1-數(shù)組(帶答案)課件_第1頁(yè)](http://file4.renrendoc.com/view/efab56671f52b5bd9f05b1eb1b3613f0/efab56671f52b5bd9f05b1eb1b3613f01.gif)
![Java程序設(shè)計(jì)進(jìn)階1-數(shù)組(帶答案)課件_第2頁(yè)](http://file4.renrendoc.com/view/efab56671f52b5bd9f05b1eb1b3613f0/efab56671f52b5bd9f05b1eb1b3613f02.gif)
![Java程序設(shè)計(jì)進(jìn)階1-數(shù)組(帶答案)課件_第3頁(yè)](http://file4.renrendoc.com/view/efab56671f52b5bd9f05b1eb1b3613f0/efab56671f52b5bd9f05b1eb1b3613f03.gif)
![Java程序設(shè)計(jì)進(jìn)階1-數(shù)組(帶答案)課件_第4頁(yè)](http://file4.renrendoc.com/view/efab56671f52b5bd9f05b1eb1b3613f0/efab56671f52b5bd9f05b1eb1b3613f04.gif)
![Java程序設(shè)計(jì)進(jìn)階1-數(shù)組(帶答案)課件_第5頁(yè)](http://file4.renrendoc.com/view/efab56671f52b5bd9f05b1eb1b3613f0/efab56671f52b5bd9f05b1eb1b3613f05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
算法與程序設(shè)計(jì)基礎(chǔ)2016-9Email:luyou@電子與信息工程學(xué)院計(jì)算機(jī)科學(xué)與工程系陸悠算法與程序設(shè)計(jì)基礎(chǔ)2016-9電子與信息工程學(xué)院計(jì)算機(jī)科學(xué)1入門階段Java程序設(shè)計(jì)進(jìn)階1數(shù)組的概念01數(shù)組的聲明和創(chuàng)建02數(shù)組元素的引用03常用的數(shù)組方法、屬性04數(shù)組入門階段Java程序設(shè)計(jì)進(jìn)階1數(shù)組的概念01數(shù)組的聲明和創(chuàng)建2PARTONE數(shù)組的概念PART數(shù)組的概念3數(shù)組4數(shù)組的概念問(wèn)題從鍵盤上輸入10個(gè)數(shù)字,找出其中的最大數(shù)。inta,b,c,d,e,f,g,h,i,j;intm;//數(shù)據(jù)輸入到變量中m=max(a,b);m=max(c,m);m=max(d,m);:m=max(j,m);如果是100個(gè)數(shù)字,還能這樣處理嗎?數(shù)組4數(shù)組的概念問(wèn)題如果是100個(gè)數(shù)字,還能這樣處理嗎?數(shù)組5數(shù)組的概念程序中出現(xiàn)多個(gè)具有相同類型的變量,而且要對(duì)它們做相同或類似的操作。如果把這些變量定義成獨(dú)立的變量,則程序顯得很煩瑣。JAVA語(yǔ)言提供了一種構(gòu)造類型–數(shù)組,它能解決上面的問(wèn)題數(shù)組5數(shù)組的概念程序中出現(xiàn)多個(gè)具有相同類型的變量,而且要對(duì)它數(shù)組6數(shù)組的概念在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來(lái)。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組數(shù)組是相同類型的變量按順序組成的一種復(fù)合數(shù)據(jù)類型稱這些相同類型的變量為數(shù)組的元素或單元數(shù)組通過(guò)數(shù)組名加索引來(lái)使用數(shù)組的元素。索引從0開(kāi)始在JAVA語(yǔ)言中,數(shù)組屬于構(gòu)造數(shù)據(jù)類型(非基本數(shù)據(jù)類型,亦是引用型數(shù)據(jù))。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型數(shù)組6數(shù)組的概念在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的數(shù)組7數(shù)組的概念與其他引用型最大差別在于:數(shù)組是數(shù)據(jù)組織形式,可批量定義空間,并隨機(jī)存取數(shù)組相關(guān)概念Java中的數(shù)組是動(dòng)態(tài)數(shù)組,涉及如下概念:數(shù)組引用、數(shù)組對(duì)象、數(shù)組下標(biāo)、數(shù)組元素等;數(shù)組相關(guān)操作數(shù)組操作:引用;如:a.length數(shù)組元素:按下標(biāo)引用。如a[0]數(shù)組7數(shù)組的概念與其他引用型最大差別在于:PARTTWO數(shù)組的聲明和創(chuàng)建PART數(shù)組的89數(shù)組的聲明聲明一維數(shù)組有下列兩種格式:數(shù)組的元素類型數(shù)組名字[];如:typearrayName[];
數(shù)組的元素類型[]數(shù)組名字;如:type[]arrayName;類型(type)可以為Java中任意的數(shù)據(jù)型,包括簡(jiǎn)單類型和復(fù)合類型。例如:floatboy[];或float[]boy;數(shù)組9數(shù)組的聲明聲明一維數(shù)組有下列兩種格式:數(shù)組10數(shù)組的聲明聲明2維數(shù)組有下列兩種格式:數(shù)組的元素類型數(shù)組名字[][];typearrayName[][];數(shù)組的元素類型[][]數(shù)組名字;type[][]arrayName;例如:charcat[][];或char[][]cat;注意:數(shù)組boy的元素可以存放float型數(shù)據(jù)、數(shù)組cat的元素可以存放char型數(shù)據(jù)。數(shù)組10數(shù)組的聲明聲明2維數(shù)組有下列兩種格式:數(shù)組11數(shù)組的聲明數(shù)組的元素的類型可以是Java的任何一種類型。假如已經(jīng)聲明了一種People類型數(shù)據(jù),那么可以如下聲明一個(gè)數(shù)組:Peoplechina[];
則數(shù)組china的元素可以存放People類型的數(shù)據(jù)。數(shù)組數(shù)組的聲明僅僅是宣告定義,聲明后并不能直接使用數(shù)組,必須對(duì)數(shù)組進(jìn)行創(chuàng)建(初始化)工作后才能對(duì)其進(jìn)行操作?。?1數(shù)組的聲明數(shù)組的元素的類型可以是Java的任何一種類型。12數(shù)組的創(chuàng)建為數(shù)組分配內(nèi)存空間的格式如下:數(shù)組名字=new數(shù)組元素的類型[數(shù)組元素的個(gè)數(shù)];例如:boy=newfloat[4];為數(shù)組分配內(nèi)存空間后,數(shù)組boy獲得4個(gè)用來(lái)存放float類型數(shù)據(jù)的內(nèi)存空間,即4個(gè)float型元素。boy0x785BAboy[0]boy[1]boy[2]boy[3]數(shù)組變量boy中存放著這些內(nèi)存單元的首地址,該地址稱作數(shù)組的引用,這樣數(shù)組就可以通過(guò)索引操作這些內(nèi)存單元。數(shù)組12數(shù)組的創(chuàng)建為數(shù)組分配內(nèi)存空間的格式如下:boy0x713數(shù)組的創(chuàng)建聲明數(shù)組和創(chuàng)建可以一起完成例如:floatboy[]=newfloat[4];二維數(shù)組和一維數(shù)組一樣,在聲明之后必須用new運(yùn)算符分配內(nèi)存空間例如:intmytwo[][];mytwo=newint[3][4];或intmytwo[][]=newint[3][4];具體創(chuàng)建過(guò)程即初始化方法見(jiàn)后述數(shù)組13數(shù)組的創(chuàng)建聲明數(shù)組和創(chuàng)建可以一起完成數(shù)組14數(shù)組的初始化一維數(shù)組的初始化靜態(tài)初始化
intintArray[]={1,2,3,4};
StringstringArray[]={"abc","How","you"};動(dòng)態(tài)初始化:簡(jiǎn)單類型的數(shù)組
intintArray[];intArray=newint[5];數(shù)組14數(shù)組的初始化一維數(shù)組的初始化數(shù)組15數(shù)組的初始化一維數(shù)組的初始化動(dòng)態(tài)初始化:復(fù)合類型的數(shù)組
StringstringArray[];StringstringArray=newString[3];//為數(shù)組中每個(gè)元素開(kāi)辟引用空間(32位)stringArray[0]=newString("How");//為第一個(gè)數(shù)組元素開(kāi)辟空間
stringArray[1]=newString("are");//為第二個(gè)數(shù)組元素開(kāi)辟空間
stringArray[2]=newString("you");//為第三個(gè)數(shù)組元素開(kāi)辟空間數(shù)組15數(shù)組的初始化一維數(shù)組的初始化數(shù)組PARTTHREE數(shù)組元素的引用PART數(shù)組元素的引用1617數(shù)組元素的使用一維數(shù)組通過(guò)索引符訪問(wèn)自己的元素,如boy[0],boy[1]等。注意:索引從0開(kāi)始,數(shù)組若有7個(gè)元素,那么索引到6為止,如果程序使用了如下語(yǔ)句:boy[7]=384.98f;程序運(yùn)行時(shí)將發(fā)生.ArrayIndexOutOfBoundsException異常,因此在使用數(shù)組時(shí)必須謹(jǐn)慎,防止索引越界。數(shù)組17數(shù)組元素的使用一維數(shù)組通過(guò)索引符訪問(wèn)自己的元素,如數(shù)組18數(shù)組元素的使用二維數(shù)組也通過(guò)索引符訪問(wèn)自己的元素,如a[0][1],a[1][2]等;需要注意的是索引從0開(kāi)始,比如聲明創(chuàng)建了一個(gè)二維數(shù)組a:inta[][]=newint[2][3];那么第一個(gè)索引的變化范圍從0到1,第二個(gè)索引變化范圍從0到2數(shù)組18數(shù)組元素的使用二維數(shù)組也通過(guò)索引符訪問(wèn)自己的元素,如a[PARTFOUR常用的數(shù)組方法、屬性PART常用的數(shù)組19數(shù)組數(shù)組的常用方法、屬性Length屬性數(shù)組的元素的個(gè)數(shù)稱作數(shù)組的長(zhǎng)度。對(duì)于一維數(shù)組,“數(shù)組名字.length”的值就是數(shù)組中元素的個(gè)數(shù)。對(duì)于二維數(shù)組“數(shù)組名字.length”的值是它含有的一維數(shù)組的個(gè)數(shù)。對(duì)于floata[]=newfloat[12];a.length的值12對(duì)于intb[][]=newint[3][6];b.length的值是320數(shù)組數(shù)組的常用方法、屬性Length屬性20數(shù)組數(shù)組的常用方法、屬性數(shù)組的初始化創(chuàng)建數(shù)組后,系統(tǒng)會(huì)給每個(gè)數(shù)組元素一個(gè)默認(rèn)的值,如,float型是0.0。在聲明數(shù)組同時(shí)也可以給數(shù)組的元素一個(gè)初始值,如:floatboy[]={21.3f,23.89f,2.0f,23f,778.98f};也可以直接用若干個(gè)一維數(shù)組初始化一個(gè)二維數(shù)組。21數(shù)組數(shù)組的常用方法、屬性數(shù)組的初始化21數(shù)組數(shù)組的引用數(shù)組屬于引用型變量,因此兩個(gè)相同類型的數(shù)組如果具有相同的引用,它們就有完全相同的元素。例如,對(duì)于inta[]={1,2,3},b[]={4,5};
如果使用了下列賦值語(yǔ)句(a和b的類型必須相同):a=b;那么a中存放的引用和b的相同。22數(shù)組數(shù)組的引用數(shù)組屬于引用型變量,因此兩個(gè)相同類型的數(shù)組如數(shù)組數(shù)組的遍歷for(typevarName:arrayName) System.out.print(varName);示例inta[]={1,2,3,4,5};for(inti:a){System.out.println(i);}23數(shù)組數(shù)組的遍歷for(typevarName:arra數(shù)組多維數(shù)組1、二維數(shù)組的定義
typearrayName[][];
type[][]arrayName;n維數(shù)組(n≥2)可視為一個(gè)一維數(shù)組,每一數(shù)組元素是一個(gè)n-1維數(shù)組。此視角對(duì)簡(jiǎn)化多維數(shù)組處理十分有益。注意:數(shù)組聲明,僅僅創(chuàng)建了引用名,未創(chuàng)建數(shù)組對(duì)象24數(shù)組多維數(shù)組1、二維數(shù)組的定義24數(shù)組多維數(shù)組靜態(tài)初始化
intintArray[][]={{1,2},{2,3},{3,4,5}};
動(dòng)態(tài)初始化
inta[][]=newint[2][3];例:inta[][]=newint[2][];
a[0]=newint[3];
a[1]=newint[5];對(duì)二維復(fù)合數(shù)據(jù)類型的數(shù)組,必須首先為最高維分配引用空間,然后再順次為低維分配空間。而且,必須為每個(gè)數(shù)組元素單獨(dú)分配空間。25數(shù)組多維數(shù)組靜態(tài)初始化25數(shù)組多維數(shù)組二維數(shù)組元素的引用對(duì)二維數(shù)組中的每個(gè)元素,引用方式為: arrayName[index1][index2]
例如:num[1][0];二維數(shù)組舉例:Array2D.java26數(shù)組多維數(shù)組二維數(shù)組元素的引用26數(shù)組與數(shù)組有關(guān)的常見(jiàn)錯(cuò)誤數(shù)組下標(biāo)越界變量聲明時(shí)指明元素?cái)?shù)組個(gè)數(shù)。下面幾句均產(chǎn)生編譯錯(cuò)int[3]x;int[3][]a;或int[][3]a;int[3][4]b;int[3]y=newint[3];Int[3]z={1,2,3}原因分析:數(shù)組類型只能如int[],不能如int[n].否則int[3]和int[4]類型不同,不能相互賦值。進(jìn)而導(dǎo)致“數(shù)組對(duì)象在堆空間創(chuàng)建”帶來(lái)的好處,如動(dòng)態(tài)創(chuàng)建數(shù)組、數(shù)組元素?cái)?shù)量“可變”、多維不規(guī)則數(shù)組等特色,幾乎喪失殆盡。27數(shù)組與數(shù)組有關(guān)的常見(jiàn)錯(cuò)誤數(shù)組下標(biāo)越界27數(shù)組與數(shù)組有關(guān)的常見(jiàn)錯(cuò)誤多維數(shù)組的創(chuàng)建錯(cuò)誤。例如int[][]x=newint[3][];//正確;----語(yǔ)句1int[][]y=newint[][3];//錯(cuò)誤;----語(yǔ)句2原因分析:創(chuàng)建對(duì)象,必須要能確定對(duì)象所占空間的大小。語(yǔ)句1可以可以確定所需空間大小;語(yǔ)句2不能。28數(shù)組與數(shù)組有關(guān)的常見(jiàn)錯(cuò)誤多維數(shù)組的創(chuàng)建錯(cuò)誤。例如28PARTFIVE課堂練習(xí)PART課堂練習(xí)29課堂練習(xí)30習(xí)題1、下列數(shù)組的聲明形式錯(cuò)誤的是(B)A、floata[]B、floata[5]C、inta[]=newint[5]D、float[]a2、為了定義三個(gè)整數(shù)數(shù)組a1a2a3,下面聲明語(yǔ)句正確的是(B)A、intArray[]a1,a2;inta3[]={1,2,3,4,5};B、int[]a1,a2;inta3[]={1,2,3,4,5};C、inta1,a2[];inta3={1,2,3,4,5}D、int[]a1,a2;inta3[]=(1,2,3,4,5);3、若有byte[]x={1,2,3,4},其中0<=k<=3,對(duì)x數(shù)組元素錯(cuò)誤的引用是(C)A、x[5-3]B、x[k]C、x[k+5]D、
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit5 I'm cleaning my room(說(shuō)課稿)-2023-2024學(xué)年人教精通版英語(yǔ)五年級(jí)下冊(cè)001
- 2024年九年級(jí)語(yǔ)文下冊(cè) 第二單元 第5課 孔乙己說(shuō)課稿 新人教版
- 2024-2025學(xué)年高中化學(xué)下學(xué)期第20周 常見(jiàn)氣體的制備說(shuō)課稿
- Unit 1 people of achievement Reading for writing 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)人教版(2019)選擇性必修第一冊(cè)
- 2024-2025學(xué)年高中歷史 專題八 日本明治維新 二 明治維新的舉措(1)教學(xué)說(shuō)課稿 人民版選修1
- 水渠模板工程專項(xiàng)施工方案
- 2023二年級(jí)數(shù)學(xué)上冊(cè) 三 數(shù)一數(shù)與乘法第2課時(shí) 兒童樂(lè)園說(shuō)課稿 北師大版
- 買房還款方式合同范本
- 代理辦理證照合同范例
- 2024年01月河南中原銀行焦作分行(籌)誠(chéng)邀社會(huì)金融英才筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)黃芪提取物市場(chǎng)調(diào)查研究報(bào)告
- 安徽省定遠(yuǎn)重點(diǎn)中學(xué)2024-2025學(xué)年第一學(xué)期高二物理期末考試(含答案)
- 教育教學(xué)質(zhì)量經(jīng)驗(yàn)交流會(huì)上校長(zhǎng)講話:聚焦課堂關(guān)注個(gè)體全面提升教育教學(xué)質(zhì)量
- 2024人教新目標(biāo)(Go for it)八年級(jí)英語(yǔ)上冊(cè)【第1-10單元】全冊(cè) 知識(shí)點(diǎn)總結(jié)
- 北京市北師大附中2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 2023學(xué)年廣東省深圳實(shí)驗(yàn)學(xué)校初中部九年級(jí)(下)開(kāi)學(xué)語(yǔ)文試卷
- 企業(yè)新員工培訓(xùn)師帶徒方案
- (完整版)施工組織設(shè)計(jì)范本
- 美容美發(fā)行業(yè)衛(wèi)生管理規(guī)范
- 年終總結(jié)總經(jīng)理講話
- 2024-2025學(xué)年北師大版數(shù)學(xué)八年級(jí)上冊(cè)期末綜合測(cè)試卷
評(píng)論
0/150
提交評(píng)論