久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java 5.0 中增強(qiáng)的for循環(huán)——for/in (for each) - 一杯苦咖啡 - ITeye技術(shù)網(wǎng)站

 知識(shí)儲(chǔ)備庫_wucl 2011-06-22
以前寫遍歷是:
//遍歷數(shù)組
for(int i = 0; i < array.length; i ++) ...{
    int n = array[i];
    //do something
}
//遍歷集合
for(Interator iter = list.iterator(); iter.hasNext(); ) ...{
    Object o = iter.next();
    //do something
}


現(xiàn)在使用增強(qiáng)型的:
遍歷數(shù)組:
//以前我們這樣寫:
void someFunction () ...{
    int[] array = ...{1,2,5,8,9};
    int total = 0;
    for (int i = 0; i < array.length; i++) ...{
        total += array[i];
    }
    System.out.println(total);
}

//現(xiàn)在我們只需這樣寫(和以上寫法是等價(jià)的):
void someFunction () ...{
    int[] array = ...{1,2,5,8,9};
    int total = 0;       
    for (int n : array) ...{
        total += n;
    }
    System.out.println(total);
}
這種寫法的缺點(diǎn):

顯而易見,,for/in(for each)循環(huán)自動(dòng)控制一次遍歷數(shù)組中的每一個(gè)元素,,然后將它賦值給一個(gè)臨時(shí)變量(如上述代碼中的int n),然后在循環(huán)體中可直接對(duì)此臨時(shí)變量進(jìn)行操作,。這種循環(huán)的缺點(diǎn)是:

1.       只能順次遍歷所有元素,,無法實(shí)現(xiàn)較為復(fù)雜的循環(huán),如在某些條件下需要后退到之前遍歷過的某個(gè)元素,;

2.       循環(huán)變量(i)不可見,,如想知道當(dāng)前遍歷到數(shù)組的第幾個(gè)元素。


遍歷集合:
//以前我們這樣寫:
void someFunction () ...{
    List list = new ArrayList();
    list.add("Hello ");
    list.add("Java ");
    list.add("World!");
    String s = "";
    for (Iterator iter = list.iterator(); iter.hasNext();) ...{
        String temp= (String) iter.next();   
        s += temp;
    }
    System.out.println(s);
}

//現(xiàn)在我們這樣寫:
void someFunction () ...{
    List list = new ArrayList();
    list.add("Hello ");
    list.add("Java ");
    list.add("World!");
    String s = "";
    for (Object o : list) ...{
        String temp = (String) o;
        s += temp;
    }
    System.out.println(s);
}


// 如果結(jié)合“泛型”,,那么寫法會(huì)更簡(jiǎn)單,,如下:
void someFunction () ...{
    List<String> list = new ArrayList<String>();
    list.add("Hello ");
    list.add("Java ");
    list.add("World!");
    String s = "";
    for (String temp : list) ...{           
        s += temp; //省去了對(duì)強(qiáng)制類型轉(zhuǎn)換步驟
    }
    System.out.println(s);
}


//上述代碼會(huì)被編譯器轉(zhuǎn)化為:
void someFunction () ...{
    List<String> list = new ArrayList<String>();
    list.add("Hello ");
    list.add("Java ");
    list.add("World!");
    String s = "";
    for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) ...{           
        String temp = iter.next();
        s += temp;
    }
    System.out.println(s);
}
這種寫法的缺點(diǎn):

         雖然對(duì)集合進(jìn)行的for/in操作會(huì)被編譯器轉(zhuǎn)化為Iterator操作,但是使用for/in時(shí),,Iterator是不可見的,,所以如果需要調(diào)用Iterator.remove()方法,或其他一些操作,, for/in循環(huán)就有些力不從心了,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多