Java程序設(shè)計(jì)-4-數(shù)組.ppt_第1頁(yè)
Java程序設(shè)計(jì)-4-數(shù)組.ppt_第2頁(yè)
Java程序設(shè)計(jì)-4-數(shù)組.ppt_第3頁(yè)
Java程序設(shè)計(jì)-4-數(shù)組.ppt_第4頁(yè)
Java程序設(shè)計(jì)-4-數(shù)組.ppt_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 數(shù)組,1,學(xué)習(xí)目標(biāo),理解數(shù)組的作用 掌握數(shù)組的聲明和初始化特點(diǎn) 能夠通過(guò)下標(biāo)訪問(wèn)數(shù)組中的單個(gè)元素 如何利用JDK提供的數(shù)組操作方法 理解程序接收參數(shù)的過(guò)程,靈活運(yùn)用main的參數(shù)實(shí)現(xiàn)和程序交互 掌握多維數(shù)組的聲明和應(yīng)用,2,3,4.1 數(shù)組,數(shù)組的作用在于提供了一種用來(lái)處理一組同類型數(shù)據(jù)的存儲(chǔ)和訪問(wèn)機(jī)制,因?yàn)樵趯?shí)際編程中,你無(wú)法為每一個(gè)這樣的數(shù)據(jù)聲明一個(gè)變量。 在Java語(yǔ)言中,數(shù)組元素可以是基本類型,也可是對(duì)象。實(shí)際上,Java認(rèn)為數(shù)組本身也是一個(gè)對(duì)象。,4,4.1.1 數(shù)組的聲明,傳統(tǒng)方式 int score; char s ; Point p ,q; / Point是一個(gè)類類型,

2、此處聲明了兩個(gè)數(shù)組 現(xiàn)代方式 char s; Point p, q;,5,4.1.2 創(chuàng)建數(shù)組,數(shù)組聲明后并不是就可以直接使用了,要想使用必須要實(shí)際創(chuàng)建數(shù)組,為它分配實(shí)際的存儲(chǔ)空間,然后才能存儲(chǔ)元素。 s = new char 20; p = new Point 100; 也可在運(yùn)行時(shí),用變量表示數(shù)組的大小。 int a; int len=10; a=new intlen; 注意:數(shù)組的大小一旦指定,就不可更改。,6,4.1.3 初始化數(shù)組,初始化解決了當(dāng)數(shù)組空間被分配時(shí),如何填充空間的問(wèn)題,而且預(yù)防了沒(méi)有賦值就訪問(wèn)數(shù)組元素導(dǎo)致意外的情況。 1.當(dāng)創(chuàng)建一個(gè)數(shù)組時(shí),每個(gè)元素都將被默認(rèn)初始化。 在

3、上述char數(shù)組s的例子中,每個(gè)值都被初始化為0 (u0000-null)字符; 數(shù)值類型的數(shù)組元素默認(rèn)值為0 boolean類型的數(shù)組元素默認(rèn)值為false 對(duì)象類型的數(shù)組元素默認(rèn)值為null 在數(shù)組p的例子中, 每個(gè)值都被初始化為null,表明它還未引用一個(gè)Point對(duì)象。在經(jīng)過(guò)賦值 p0 = new Point()之后,數(shù)組的第一個(gè)元素引用為實(shí)際Point對(duì)象。,7,2. Java編程語(yǔ)言允許使用下列形式快速創(chuàng)建數(shù)組,并完成初始化任務(wù): String names = “Georgianna”, “Jen”, “Simon” ; 其結(jié)果與下列代碼等同: String names ; nam

4、es = new String 3; names 0 = “Georgianna”; names 1 = “Jen”; names 2 = “Simon”;,8,4.1.4 訪問(wèn)數(shù)組,public class ArrayAccessDemo public static void main(String args) int a=1,3,7,2,6,5; for(int i=0;ia.length;i+) System.out.println(第+i+個(gè)元素值為+ai); ,9,4.1.4 訪問(wèn)數(shù)組cont.,注意: 1.在Java編程語(yǔ)言中,所有數(shù)組的下標(biāo)都從0開始。訪問(wèn)數(shù)組元素可以通過(guò)下標(biāo)進(jìn)行

5、,如a5或者ai. 2.一個(gè)數(shù)組中元素的數(shù)量被作為具有l(wèi)ength屬性的部分而被數(shù)組對(duì)象存儲(chǔ); 這個(gè)值被用來(lái)檢查所有運(yùn)行時(shí)訪問(wèn)的界限。如果發(fā)生了一個(gè)越出界限的訪問(wèn),那么運(yùn)行時(shí)的報(bào)錯(cuò)(異常)也就出現(xiàn)了.,10,4.1.4 訪問(wèn)數(shù)組cont.,存儲(chǔ)元素到數(shù)組 int a=new int10; a0=10; a5=2; a7=8;,11,小結(jié):,數(shù)組就是一個(gè)具有固定長(zhǎng)度的包容多個(gè)相同類型對(duì)象的數(shù)據(jù)結(jié)構(gòu)。它的元素類型甚至可以是數(shù)組。 數(shù)組的聲明、創(chuàng)建和初始化可以分別完成,也可以一次完成。 用來(lái)指示單個(gè)數(shù)組元素的下標(biāo)必須總是從0開始。 數(shù)組一旦創(chuàng)建后,其大小不可調(diào)整。 可以用數(shù)組對(duì)象的length屬性來(lái)

6、獲得該數(shù)組可以容納的元素個(gè)數(shù)。 可以通過(guò)下標(biāo)(整數(shù)數(shù)值或整型變量)來(lái)引用數(shù)組內(nèi)的指定位置的元素,下標(biāo)不能超出數(shù)組元素個(gè)數(shù)。 可使用相同的引用變量來(lái)引用一個(gè)全新的數(shù)組。,12,課堂練習(xí),寫出下面程序的運(yùn)行結(jié)果,class Happy public static void main(String args) int index=1; int a =new int3; int bas =aindex; int baz =bas + index System.out.println( abaz ); ,13,課堂練習(xí)(cont.),判斷正確 數(shù)組中的每個(gè)元素都是同樣的類型 數(shù)組的大小在聲明之后就是固定

7、的了 數(shù)組的大小在創(chuàng)建后確定 數(shù)組的元素必須是基本類型的,14,課堂練習(xí)(cont.),下面哪一個(gè)語(yǔ)句是有效的數(shù)組聲明? int i= new int(30); double d = new double30; Point p= new Point(1.30); int i =(3,4,5,7); char c = new char(); float f=1.0f,1.5f,4.6f; double d = new float30;,15,說(shuō)出下面數(shù)組第3個(gè)元素的值 int a = 1,3,6,7,8; boolean b = new boolean10; float f=1.4f,5.6f,

8、7.0f,2.5f,3.6f; double d=new double10; long l;,4.1.5使用增強(qiáng)型循環(huán)訪問(wèn)數(shù)組元素,16,for(目標(biāo)數(shù)組元素的類型 變量名:目標(biāo)數(shù)組名),int score = new int5; for (int x : score) System.out.print(x+,); ,4.2 main方法中的參數(shù),命令行的參數(shù) main方法聲明中的參數(shù)類型是一個(gè)字符串?dāng)?shù)組 運(yùn)行時(shí),存放接收的命令行參數(shù) Java程序?qū)⒔邮盏牡谝粋€(gè)參數(shù)存放在下標(biāo)為0的位置,第二個(gè)參數(shù)存放在下標(biāo)為1的位置,其它的以此類推。,17,/程序4-2:運(yùn)行時(shí)參數(shù)的應(yīng)用 public cla

9、ss CommandParameters public static void main(String args) for(int i=0;iargs.length;i+) System.out.printf(第%d個(gè)輸入的參數(shù)是%sn, i,argsi); ,18,4.3 多維數(shù)組,1多維數(shù)組 Java編程語(yǔ)言沒(méi)有像其它語(yǔ)言那樣提供多維數(shù)組,因?yàn)橐粋€(gè)數(shù)組可被聲明為具有任何基礎(chǔ)類型,所以你可以創(chuàng)建數(shù)組的數(shù)組(和數(shù)組的數(shù)組的數(shù)組,等等)。 int twoDim = new int 4; twoDim0 = new int5; twoDim1 = new int5; twoDim2 = new i

10、nt5; twoDim3 = new int5; 上述數(shù)組的聲明也可以修改為: int twoDim = new int45;,19,2.不規(guī)則的多維數(shù)組 int twoDim = new int4; twoDim0 = new int 2; twoDim1 = new int 4; twoDim2 = new int 6; twoDim3 = new int 8;,20,3.一種非法的聲明 盡管多維數(shù)組的聲明格式,允許方括號(hào)在變量名左邊或者右邊,但此種靈活性不適用于數(shù)組句法的其它方面。例如: new int 4是非法的,因?yàn)檫@樣的聲明,編譯器無(wú)法預(yù)先為之分配空間。 4. 多維數(shù)組的初始化 類

11、似一維數(shù)組的初始化,多維數(shù)組的初始化即可以在聲明時(shí)直接初始化,也可以在創(chuàng)建時(shí)初始化。下面的例子演示了在聲明時(shí)直接對(duì)數(shù)組進(jìn)行初始化: int factors = 2, 3, 2, 4, 5, 2, 3, 6, 7;,21,課堂練習(xí),聲明并創(chuàng)建一個(gè)如下數(shù)組。 包含3行,每行分別包含不同數(shù)目元素,元素?cái)?shù)依次為 5,4,6 編寫一個(gè)程序,逐個(gè)輸出該數(shù)組的每個(gè)元素的默認(rèn)初始值。,22,4.4 操作數(shù)組復(fù)制、排序和查找,復(fù)制:在數(shù)組內(nèi)查找一個(gè)具體的值,或者將一個(gè)數(shù)組復(fù)制到另一個(gè)數(shù)組等。 System類提供的方法arraycopy(),程序 排序和查找Arrays類提供的主要方法 sort(.)升序排列 b

12、inarySearch(.)使用折半搜索算法來(lái)搜索指定類型的有序數(shù)組 fill(.)用指定類型的值填充同類型的數(shù)組 程序,23,public class ArrayCopy public static void main(String args) / 原始數(shù)組 int myArray = 1, 2, 3, 4, 5, 6 ; / 一個(gè)更大的數(shù)組 int hold = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ; /* 復(fù)制myArray數(shù)組的所有內(nèi)容到hold數(shù)組, * 放在hold數(shù)組下標(biāo)0開始的位置 */ System.arraycopy(myArray, 0, hold

13、, 0, myArray.length); ,24,import java.util.Arrays; public class ArrayDemo public static void main(String args) int a=10,7,9,2,4,5,1,3,6,8; Arrays.sort(a); /對(duì)數(shù)組a升序排列 for(int element : a) System.out.println(element); int loc=Arrays.binarySearch(a,5);/查找元素5 System.out.println(數(shù)值5在下標(biāo)+loc+的位置); ,25,課堂練習(xí),

14、聲明一個(gè)整型數(shù)組,其初始值是:1,4,56,8,9; 聲明一個(gè)雙精度類型的數(shù)組,其初始值是:1.0,10.5,12,7.2,20.4 給出如下的聲明 float f = 1,2,3,4,5; 請(qǐng)問(wèn)數(shù)組的長(zhǎng)度,以及有效索引范圍各是多少? 請(qǐng)問(wèn)索引為3的位置存放的元素值是多少? 聲明一個(gè)字符型數(shù)組,包含20個(gè)元素,并給其前2個(gè)元素賦值字符:a,b 聲明一個(gè)字符串型數(shù)組,包含10個(gè)元素,并給其前2個(gè)元素賦值字符串:abc,bcd 聲明并創(chuàng)建一個(gè)二維整型數(shù)組。包含3行,每行分別包含不同數(shù)目元素,元素?cái)?shù)依次為 5,4,6,public class ArrayTest public static void main(String args) int i, j; int a = 2, 1, 4, 8, 9, 5, 3 ; for (i = 0; i a.length - 1; i+) int k = i; for (j = i; j a.length; j+) if (aj ak) k = j; int temp = ai; ai = ak; ak = temp; for (i = 0; i a.length; i+) System.out.print(ai + ); System.out.println(); /分析程序執(zhí)行過(guò)程,按照要求運(yùn)行下面的程序,回答問(wèn)題

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論