站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题J2SE新特性---循环语句的增强

J2SE新特性---循环语句的增强

摘要: 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));

这段代码是不是很漂亮?



↑返回目录
前一篇: J2SE5.0 实例---变长参数
后一篇: J2SE5.0 实例---泛型