循環(huán)控制流使用j2se15中增強(qiáng)for詳解_第1頁
循環(huán)控制流使用j2se15中增強(qiáng)for詳解_第2頁
循環(huán)控制流使用j2se15中增強(qiáng)for詳解_第3頁
循環(huán)控制流使用j2se15中增強(qiáng)for詳解_第4頁
循環(huán)控制流使用j2se15中增強(qiáng)for詳解_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

J2SE1.5forJavaCollectionfor(當(dāng)然,用其它種類的循環(huán)也不是不可forforfor)。/*建立一個數(shù)組int[]integers={1,2,3,/*開始遍歷for(intj=0;j<integers.length;j++){inti=integers[j];}/*CollectionString[]strings={"A","B","C",CollectionstringList=/*開始遍歷for(Itoritr=stringList.itor();itr.hasNext();){Objectstr=itr.next();}而在Java語言的版本——J2SE1.5中,引入了另一種形式的for循環(huán)。借助這種形forfor3:遍歷數(shù)組的簡單方式/*建立一個數(shù)組int[]integers={1,2,3,/*開始遍歷for(inti:integers)System.out.println(i);/*依次輸出“1”、“2”、“3”、“4”}/*建立一個數(shù)組int[]integers={1,2,3,/*開始遍歷for(int變量名甲=0;變量名甲<integers.length;變量名甲++){System.out.println(變量名甲);/*“1”、“2”、“3”、“4”*/}Collection/*CollectionString[]strings={"A","B","C",Collectionlist=/*開始遍歷for(Objectstr:list)System.out.println(str);/*依次輸出“A”、“B”、“C”、“D”}/*CollectionString[]strings={"A","B","C",CollectionstringList=/*開始遍歷for(Itor變量名乙=list.itor();變量名乙.hasNext();){System.out.println(變量名乙.next());/*“A”、“B”、“C”、“D”*/}Javafor”(而不是意義更明確的“foreach”)來引導(dǎo)這種一般被叫做“for-eachJavaforeach”這名字的java.lang.Systemin”static流”)Java提供了一種機(jī)制,可以在編譯期間就把這樣的操作。具體的方法,是在循環(huán)變量 int[]integers{1,2,3,4};for(finalintiintegers)i=i/2;/*編譯時出錯*/}Random[]randoms=newRandom[]{newRandom(1),newRandom(2),newfor(finalRandomr:randoms)r.setSeed(4);/*將所有Random對象設(shè)成使用相同的*/ 相同,第一個結(jié)果也相同*/}為了保證循環(huán)變量能在每次循環(huán)開始的時候,都被安全的賦值,J2SE1.5intint[]ObjectCollectionint[]integers={1,2,3,4};for(inti:integers){System.out.println(i);/*依次輸出“1”、“2”、“3”、“4”}intbyte[]ObjectCollection<String>String[]strings={"A","B","C",Collection<String>list=java.util.Arrays.asList(strings);for(Objectstr:list){System.out.println(str);/*依次輸出“A”、“B”、“C”、“D”}1.5“Autoboxing/Auto-Unboxing”的機(jī)制,允許編譯器在必要的時候,自動在基本類型和它們的包裹類(WrapperClasses)Integerintbyteint[]integers={1,2,3,4};for(Integeri:integers){System.out.println(i);/*依次輸出“1”、“2”、“3”、“4”}Object[]ObjectString(Generics)”Collection<T>來表示全TCollection<int>之類的寫法是不被認(rèn)可的。有兩種類型的對象可以通過這種方法來遍歷——數(shù)組了java.lang.Ible接口的信息是“foreachnotapplicabletoexpressiontype”的問題。iUnsupportedOperationException importclassTenObjectsimplementsIble{publicItoritor(){returnnewItor(){privateintcount=0;publicbooleanhasNext(){return(count<}publicObjectnext()returnnew}publicvoidremove()thrownew}}publicstaticvoidmain(String[]{TenObjectsobjects=newTenObjects();for(Objecti:objects){System.out.println(i);/*依次輸出從“0"到“9”的十個整數(shù)}}}J2SE1.5APIjava.util.Collectionjava.util.Collection不過,造成這種現(xiàn)象的實(shí)際原因,是在J2SE1.5,java.util.CollectionCollectionCollection若干方法名問在java.lang.Ible接口中,使用itor(),而不是getItor();而java.util.Itor接口中,也使用hasNext()和next(),而不是hasNexement()和getNexement()。造成這種現(xiàn)象的原因,是JavaCollectionsFramework的設(shè)計(jì)者們,如果想要使循環(huán)變量的類型為T,在所有要出現(xiàn)java.lang.Ible的地方,都寫成“Ible<T>”。在所有出現(xiàn)java.util.Itor的地方,都寫成“Itor<T>”。在實(shí)現(xiàn) ,用T作為next()方法的返回值類型TT,Auto-UnboxingimportpublicclassTenIntegersimplementsIble<Integer>{publicItor<Integer>itor(){returnnewItor<Integer>(){privateintcount=0;publicbooleanhasNext(){return(count<10);}publicIntegernext()return}publicvoidremove()thrownew}}publicstaticvoidmain(String[]{TenIntegersintegers=newTenIntegers();for(inti:integers){System.out.println(i);/*依次輸出從“0"到“9”的十個整數(shù)}}}另外,一個類只能實(shí)現(xiàn)一次java.lang.Ible接口,即使在后面的尖括號里使用不同的類型。類似“classAi

溫馨提示

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

最新文檔

評論

0/150

提交評論