posts - 8,  comments - 6,  trackbacks - 0
          Java 5 中增強(qiáng)的for循環(huán)——for/in (for each)

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

          這種循環(huán)的缺點(diǎn)是:       
            對(duì)于數(shù)組,不能方便的訪問下標(biāo)值;
            對(duì)于集合,與使用Interator相比,不能方便的刪除集合中的內(nèi)容(在內(nèi)部也是調(diào)用Interator).
          除了簡(jiǎn)單遍歷并讀取其中的內(nèi)容外,不建議使用增強(qiáng)的for循環(huá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è)元素,只能這樣寫:

           int i = 0;

           for (int n : array) {

               System.out.println("This " + i + "-th element in the array is " + n);

               i++;

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

           

                  綜上所述,Java 5.0中提供的增強(qiáng)的for循環(huán)——for/in(for each)循環(huán)能讓我們的代碼更加簡(jiǎn)潔,讓程序員使用時(shí)更加方便,但是也有它的局限性,所以一定要根據(jù)實(shí)際需要有選擇性地使用,不要盲目追求所謂的“新特性”。

          posted on 2008-08-13 09:47 ♂游泳的魚 閱讀(725) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 壤塘县| 资兴市| 珠海市| 扶余县| 屏边| 孟津县| 富裕县| 抚州市| 武功县| 偏关县| 密山市| 故城县| 乌兰浩特市| 漯河市| 桃江县| 峨眉山市| 岳阳县| 临清市| 额济纳旗| 昌江| 玉门市| 永兴县| 手机| 青河县| 神农架林区| 衡阳县| 孙吴县| 长武县| 土默特左旗| 冕宁县| 凉城县| 资兴市| 长白| 葫芦岛市| 石棉县| 龙里县| 囊谦县| 玉田县| 正定县| 武城县| 滕州市|