幻境
          We are extremely fortunate not to know precisely the kind of world we live in
          posts - 22,comments - 39,trackbacks - 0

          循環(huán)語(yǔ)句的增強(qiáng)

          之前類(lèi)似這樣的語(yǔ)句:

          void cancelAll(Collection c) {

              for (Iterator i = c.iterator(); i.hasNext(); ) {

                  TimerTask tt = (TimerTask) i.next();

                  tt.cancel();

              }

          }

           

          以后可以這樣寫(xiě):

           

          void cancelAll(Collection c) {

              for (Object o : c)

                  ((TimerTask)o).cancel();

          }

           

          有時(shí)候我們可能寫(xiě)出這樣的代碼:

          List suits = ...;

          List ranks = ...;

          List sortedDeck = new ArrayList();

          for (Iterator i = suits.iterator(); i.hasNext(); )

              for (Iterator j = ranks.iterator(); j.hasNext(); )

                  sortedDeck.add(new Card(i.next(), j.next()));

           

          這段代碼不會(huì)按照我們?cè)O(shè)想的那么工作,因?yàn)槊看蔚诙€(gè)for語(yǔ)句的執(zhí)行都會(huì)引發(fā)i.next()的執(zhí)行,實(shí)際上我們沒(méi)有達(dá)到對(duì)i進(jìn)行遍歷的目的,而且可能會(huì)引起一個(gè)NoSuchElementException異常。

          解決的一個(gè)辦法是改寫(xiě)成如下代碼:

          for (Iterator i = suits.iterator(); i.hasNext(); ) {

              Suit suit = (Suit) i.next();

              for (Iterator j = ranks.iterator(); j.hasNext(); )

                  sortedDeck.add(new Card(suit, j.next()));

          }

           

          利用java語(yǔ)言的新特性,我們可以這樣寫(xiě):

          for (Suit suit : suits)

              for (Rank rank : ranks)

                  sortedDeck.add(new Card(suit, rank));

           

           

          這段代碼是不是很漂亮?

          posted on 2005-05-12 10:57 閱讀(1308) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): 編程相關(guān)

          FeedBack:
          # re: J2SE5.0新特性示例---循環(huán)語(yǔ)句的增強(qiáng)
          2005-05-14 11:46 | idior
          哈哈 學(xué)別人的
          不過(guò)沒(méi).net學(xué)的快  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 竹溪县| 托里县| 教育| 永吉县| 大荔县| 顺平县| 铜川市| 曲松县| 玉树县| 东乡族自治县| 通山县| 错那县| 南雄市| 丰都县| 延寿县| 大宁县| 二连浩特市| 鹰潭市| 麻栗坡县| 揭东县| 阳原县| 龙岩市| 苗栗市| 阜阳市| 桃园县| 柏乡县| 汶川县| 麻阳| 二连浩特市| 咸宁市| 习水县| 临洮县| 衡水市| 鄂托克旗| 沁阳市| 庐江县| 杭州市| 磐安县| 东乌| 深圳市| 宜阳县|