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

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

          這種循環的缺點是:       
            對于數組,不能方便的訪問下標值;
            對于集合,與使用Interator相比,不能方便的刪除集合中的內容(在內部也是調用Interator).
          除了簡單遍歷并讀取其中的內容外,不建議使用增強的for循環。

          for/in(for each)循環自動控制一次遍歷數組中的每一個元素,然后將它賦值給一個臨時變量(如上述代碼中的int n),然后在循環體中可直接對此臨時變量進行操作。這種循環的缺點是:

           1. 只能順次遍歷所有元素,無法實現較為復雜的循環,如在某些條件下需要后退到之前遍歷過的某個元素;

           2. 循環變量(i)不可見,如果想知道當前遍歷到數組的第幾個元素,只能這樣寫:

           int i = 0;

           for (int n : array) {

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

               i++;

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

           

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

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

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

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 青田县| 沁源县| 苏尼特右旗| 文化| 沾益县| 砚山县| 丰城市| 东兴市| 柘荣县| 长武县| 黄骅市| 故城县| 娱乐| 金堂县| 郯城县| 固始县| 岳阳县| 新密市| 巴林左旗| 宜宾县| 桃江县| 启东市| 鲜城| 张家界市| 宁河县| 鄂温| 当雄县| 玉林市| 吉木萨尔县| 泾阳县| 榆社县| 民县| 加查县| 高淳县| 察雅县| 伊宁县| 饶河县| 宁海县| 湖口县| 无锡市| 本溪市|