java從入門到精通-第4章_第1頁
java從入門到精通-第4章_第2頁
java從入門到精通-第4章_第3頁
java從入門到精通-第4章_第4頁
java從入門到精通-第4章_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4數(shù)組Java種基本的排序方法,然后是數(shù)組的使用。有些內(nèi)容放在本章講有些早,但為了使全書的publicclasspublicclassAverageTemperatures{publicstaticvoidmain(Stringargs[]){intScannersc=newScanner(System.in);{}}程序首先定義了一系列的變量,count用來表示第幾天,next用來存放每天的氣溫,sumaverage是用氣溫的總和除以天數(shù)得到的平均值。下面定義了一個Scanner對象,Scanner是一個使用正規(guī)表達式來解析基本類型和字符串的簡單文本掃描器,可以用來用戶輸入的氣溫。在循環(huán)語句中調(diào)用該類的nextDouble()方法,用戶輸入的氣溫,把它放入next中,然后加入sum中。循環(huán)結(jié)束后求得氣溫的平均值average。Java的數(shù)組可以看作一種特殊的對象,準確地說是把數(shù)組看作同種類型變量的集合。在ArrayTypeArrayTypeArrayName[];ArrayType[]時多個數(shù)組,使用起來較為方便,所以程序員一般使用第二種方法。下面intintintarray1[int[]了兩個數(shù)組array2和array3,效果和第一行的方式相同。問它的任何元素。這時候,可以用new對數(shù)組分配內(nèi)存空間,格式如下。array1=newint 號不是數(shù)組的長度,而是比數(shù)組的長度小1。 給int型變量 publicclass{publicstaticvoidmain(Stringargs[{int[]array1=new }}Exceptioninthread"main"java.lang.ArrayIndexOutOfBoundsException:5atArrayException.main(ArrayException.java:4)程序首先了一個大小為5的int類型數(shù)組,前面已經(jīng)講到,它的下標最大只能是4。但在程序中卻嘗試array1[5],顯然是不正確的。程序會正常通過編譯,但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]);//打印出各個數(shù)組的默認初始化}}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變量,這個變量指的是數(shù)組的長度。例如,創(chuàng)建下面一個數(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提供的一個方便的操作。 如果讀者以前接觸過C語言或其他參數(shù)語言,可能會知道命令行參數(shù)。命令行參數(shù)就是據(jù)或者通過標準輸入輸出用戶輸入的參數(shù)(現(xiàn)在比較流行使用Scanner類)。Javamain方法,而這個方法帶有publicclass{publicstaticvoidmain(Stringargs[{for(inti=0;i<args.length;i++)}}javaArgsDemoname 0個參數(shù)1個參數(shù)3個參數(shù)注意:執(zhí)行程序令中,java和程序名并不在參數(shù)列表之中。參數(shù)列表的第一個參數(shù)兩個數(shù)組array1和array2,執(zhí)行下面語句。 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類中的arraycopy組toArray,在指定位置toIndex結(jié)束,length個元素。注意目標數(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種算法。長度為n的數(shù)組進行n趟遍歷,第一趟遍歷選出最大(或者最?。┑脑?,將之與數(shù)組的第之與數(shù)組的第二個元素交換。這樣遍歷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)在接觸這么復雜的排序可能 publicclass{publicstaticvoidmain(Stringargs[{int[intindex;intfor(inti=0;i<intArray.length;i++)for(int{{}}for(inti=0;i<intArray.length;i++) }}間。Java是支持數(shù)組的,并利用多個下標來表示。本節(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é)將會介紹這類不規(guī)則數(shù)組。例如,可以一個二維數(shù)組:int[][]twoD=newint[4][ twoD[0]=newtwoD[0]=newint[1];twoD[1]=newint[2];twoD[2]=newint[3];twoD[3]=new經(jīng)過上面的,在二維數(shù)組twoD中,第一行有一個元素,第二行有兩個元素,第三了不規(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++)}}}程序首先定義了一個一維的double型數(shù)組rate,用來不同的利率,然后定義了一個描1041000,表示本金。計算每年在0123456789For-EachJ2SE5for循環(huán)的一種縮略形式,通過它可以簡化復雜for循環(huán)結(jié)構(gòu)。For-Each循環(huán)主要用在集合(如數(shù)組)中,按照嚴格的方式,從開始到結(jié) F

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論