java 中 使用冒号 for 循环

来源:互联网 发布:cisco查看端口流量 编辑:程序博客网 时间:2024/06/05 00:57
 在for循环中使用冒号,是JAVA1.5 增强的for 循环的新特性:enhanced for loop。

      所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator 遍历容器”的逻辑交给编译器来处理。例如下列代码:
void cancelAll(Collection c) { 
for (Iterator i = c.iterator(); i.hasNext(); ) { 
TimerTask tt = (TimerTask) i.next(); 
tt.cancel(); 


可以用增强的for 循环改写为: 
void cancelAll(Collection c) { 
for (Object o : c) 
((TimerTask)o).close(); 

编译器判断对象c 是一个Collection 子对象(即是容器)之后,就会允许使用增强的for 循环 
形式,并自动取到c 的迭代器,自动遍历c 中的每个元素。 
可以看到,上面的代码中仍然有一个强制类型转换(((TimerTask)o).close();)。实际上,这 
项特性应该普遍地与泛型结合,以获得最大的利益。结合泛型之后,上述代码变成: 
void cancelAll(Collection c) { 
for (TimerTask task : c) 
task.cancel(); 
}

0 0
原创粉丝点击