java從入門(mén)到精通-第4章_第1頁(yè)
java從入門(mén)到精通-第4章_第2頁(yè)
java從入門(mén)到精通-第4章_第3頁(yè)
java從入門(mén)到精通-第4章_第4頁(yè)
java從入門(mén)到精通-第4章_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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)介

4數(shù)組Java種基本的排序方法,然后是數(shù)組的使用。有些內(nèi)容放在本章講有些早,但為了使全書(shū)的publicclasspublicclassAverageTemperatures{publicstaticvoidmain(Stringargs[]){intScannersc=newScanner(System.in);{}}程序首先定義了一系列的變量,count用來(lái)表示第幾天,next用來(lái)存放每天的氣溫,sumaverage是用氣溫的總和除以天數(shù)得到的平均值。下面定義了一個(gè)Scanner對(duì)象,Scanner是一個(gè)使用正規(guī)表達(dá)式來(lái)解析基本類(lèi)型和字符串的簡(jiǎn)單文本掃描器,可以用來(lái)用戶輸入的氣溫。在循環(huán)語(yǔ)句中調(diào)用該類(lèi)的nextDouble()方法,用戶輸入的氣溫,把它放入next中,然后加入sum中。循環(huán)結(jié)束后求得氣溫的平均值average。Java的數(shù)組可以看作一種特殊的對(duì)象,準(zhǔn)確地說(shuō)是把數(shù)組看作同種類(lèi)型變量的集合。在ArrayTypeArrayTypeArrayName[];ArrayType[]時(shí)多個(gè)數(shù)組,使用起來(lái)較為方便,所以程序員一般使用第二種方法。下面intintintarray1[int[]了兩個(gè)數(shù)組array2和array3,效果和第一行的方式相同。問(wèn)它的任何元素。這時(shí)候,可以用new對(duì)數(shù)組分配內(nèi)存空間,格式如下。array1=newint 號(hào)不是數(shù)組的長(zhǎng)度,而是比數(shù)組的長(zhǎng)度小1。 給int型變量 publicclass{publicstaticvoidmain(Stringargs[{int[]array1=new }}Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:5atArrayException.main(ArrayException.java:4)程序首先了一個(gè)大小為5的int類(lèi)型數(shù)組,前面已經(jīng)講到,它的下標(biāo)最大只能是4。但在程序中卻嘗試array1[5],顯然是不正確的。程序會(huì)正常通過(guò)編譯,但Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:5atArrayException.main(ArrayException.java:4) publicclasspublicstaticvoidmain(Stringpublicclasspublicstaticvoidmain(Stringargs[byte[]byteArray=newchar[]charArray=newint[]intArray=newlong[]longArray=newfloat[]floatArray=newfloat[1];String[]stringArray=newString[1];System.out.println("byte="+byteArray[0]);//打印出各個(gè)數(shù)組的默認(rèn)初始化}}int[]array1=newint[5];int[]array1=newint[5];intint[]publicclasspublicstaticvoidmain(Stringargs[int[]array1=newpublicclasspublicstaticvoidmain(Stringargs[int[]array1=newfor(inti;i<5;i++)for(inti;i<5;i++)}}length量,也就是length變量,這個(gè)變量指的是數(shù)組的長(zhǎng)度。例如,創(chuàng)建下面一個(gè)數(shù)組:int[]array1=newint for(int importimportpublicclass{publicstaticvoidmain(Stringargs[{ intdouble[]temperature=newScannersc=newScanner(System.in);{ }{elseif(temperature[count]>average)System.out.println("第"+(count+1)+"天氣溫等于平均氣溫}}}組形式存在的,而數(shù)組拷貝是Java提供的一個(gè)方便的操作。 如果讀者以前接觸過(guò)C語(yǔ)言或其他參數(shù)語(yǔ)言,可能會(huì)知道命令行參數(shù)。命令行參數(shù)就是據(jù)或者通過(guò)標(biāo)準(zhǔn)輸入輸出用戶輸入的參數(shù)(現(xiàn)在比較流行使用Scanner類(lèi))。Javamain方法,而這個(gè)方法帶有publicclass{publicstaticvoidmain(Stringargs[{for(inti=0;i<args.length;i++)}}javaArgsDemoname 0個(gè)參數(shù)1個(gè)參數(shù)3個(gè)參數(shù)注意:執(zhí)行程序令中,java和程序名并不在參數(shù)列表之中。參數(shù)列表的第一個(gè)參數(shù)兩個(gè)數(shù)組array1和array2,執(zhí)行下面語(yǔ)句。 publicclasspublicclasspublicstaticvoidmain(Stringargs[int[]int[] for(inti=0;i<array1.length;i++)for(inti=0;i<array2.length;i++)for(inti=0;i<array1.length;i++)for(inti=0;i<array2.length;i++)System.out.println("改變array2[0]的值"); }}改變array2[0]的值然該方法并不合適??梢允褂肧ystem類(lèi)中的arraycopy組toArray,在指定位置toIndex結(jié)束,length個(gè)元素。注意目標(biāo)數(shù)組必須有足夠的空4-1int[]int[]int[]int[] publicclasspublicclass{publicstaticvoidmain(Stringargs[{int[]int[]array2=newint[20];for(inti=0;i<10;i++)for(inti=0;i<array2.length;i++)}}0然后將array101234567890選擇排序、冒泡排序、快速排序3種算法。長(zhǎng)度為n的數(shù)組進(jìn)行n趟遍歷,第一趟遍歷選出最大(或者最?。┑脑?,將之與數(shù)組的第之與數(shù)組的第二個(gè)元素交換。這樣遍歷n次后,得到的就為降序(或者升序)數(shù)組。inttemp;inttemp;void{intindex;{

for(int{}} }publicpublicclasspublicstaticvoidmain(Stringargs[int[intindex;intfor(inti=0;i<intArray.length;i++)for(int{{}}for(inti=0;i<intArray.length;i++) }} 683 void{for(inti=0;i<n;i++)for(intj=i;j<n;j++)}publicpublicclasspublicstaticvoidmain(Stringargs[int[for(inti=0;i<intArray.length;i++)intfor(int{for(int{{}}}for(inti=0;i<intArray.length;i++) }} 683 組的排序,盡管讀者現(xiàn)在接觸這么復(fù)雜的排序可能 publicclass{publicstaticvoidmain(Stringargs[{int[intindex;intfor(inti=0;i<intArray.length;i++)for(int{{}}for(inti=0;i<intArray.length;i++) }}間。Java是支持?jǐn)?shù)組的,并利用多個(gè)下標(biāo)來(lái)表示。本節(jié)的主要內(nèi)容以二維數(shù)組為例124-14-1int[][]twoD=new for(inti=0;i<twoD2.length;i++)for(inti=0;i<twoD2.length;i++)publicpublicclasspublicstaticvoidmain(Stringargs[int[][]int[][]twoD2=newint[5][5];intk=1;for(inti=0;i<twoD2.length;i++) {for(intj=0;j<twoD1[i].length;j++) }for(inti=0;i<twoD2.length;i++){for(intj=0;j<twoD2[i].length;j++) }}}輸出數(shù)組 3456789 輸出數(shù)組123456789int[][]twoD=new publicclasspublicstaticvoidmain(Stringargs[int[][]twoD1={publicclasspublicstaticvoidmain(Stringargs[int[][]twoD1={int[]array1=newint[5];//把twoD的第一行賦值給array1for(inti=0;i<array1.length;i++) for(inti=0;i<twoD1.length;i++){for(intj=0;j<twoD1[i].length;j++) }}}669875 交換后的二維數(shù)組答案是肯定的。這一節(jié)將會(huì)介紹這類(lèi)不規(guī)則數(shù)組。例如,可以一個(gè)二維數(shù)組:int[][]twoD=newint[4][ twoD[0]=newtwoD[0]=newint[1];twoD[1]=newint[2];twoD[2]=newint[3];twoD[3]=new經(jīng)過(guò)上面的,在二維數(shù)組twoD中,第一行有一個(gè)元素,第二行有兩個(gè)元素,第三了不規(guī)則數(shù)組的和使用。publicpublicclasspublicstaticvoidmain(Stringargs[int[][]twoD=newint[4][];intk=1;for(inti=0;i<twoD.length;i++){for(intj=0;j<twoD[i].length;j++) }}}1123456789表示第i 4-2所示,需4-212publicclass publicpublicstaticvoidmain(Stringargs[doublerate[int[][]balance=newint[10][4];for(intj=0;j<ra {doubleinc=balance[i-1][j]*rate[j];} for(inti=0;i<balance.length;i++){System.out.print(i+"for(intj=0;j<balance[i].length;j++)}}}程序首先定義了一個(gè)一維的double型數(shù)組rate,用來(lái)不同的利率,然后定義了一個(gè)描1041000,表示本金。計(jì)算每年在0123456789For-EachJ2SE5for循環(huán)的一種縮略形式,通過(guò)它可以簡(jiǎn)化復(fù)雜for循環(huán)結(jié)構(gòu)。For-Each循環(huán)主要用在集合(如數(shù)組)中,按照嚴(yán)格的方式,從開(kāi)始到結(jié) F

溫馨提示

  • 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)論