中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
J2SE新特性---循环语句的增强
作者:未知 时间:2005-07-27 22:32 出处:CSDN 责编:chinaitpower
              摘要:J2SE新特性---循环语句的增强

之前类似这样的语句:

void cancelAll(Collection c) {

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

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

        tt.cancel();

    }

}

以后可以这样写:

void cancelAll(Collection c) {

    for (Object o : c)

        ((TimerTask)o).cancel();

}

有时候我们可能写出这样的代码:

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()));

这段代码不会按照我们设想的那么工作,因为每次第二个for语句的执行都会引发i.next()的执行,实际上我们没有达到对i进行遍历的目的,而且可能会引起一个NoSuchElementException异常。

解决的一个办法是改写成如下代码:

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语言的新特性,我们可以这样写:

for (Suit suit : suits)

    for (Rank rank : ranks)

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

这段代码是不是很漂亮?


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有