黑马程序员技术交流社区

标题: 什么是高级for循环,高级for循环的参数是什么 [打印本页]

作者: 黑马张伟    时间: 2011-12-23 08:37
标题: 什么是高级for循环,高级for循环的参数是什么
本帖最后由 黑马张伟 于 2011-12-23 09:33 编辑

什么是高级for循环,高级for循环的参数是什么
普通for循环三个参数
for(int i=0;i<10;i++)
高级的呢:
如  for(String name :names)里面的参数分别是什么意思
作者: 胡遇潮    时间: 2011-12-23 08:49
for(元素类型 变量名 : Collection集合|数组)
{

}
必须要有被遍历的对象,
这个对象只能是Collection集合或者数组。
但是:在遍历集合过程中,不能对集合本身进行操作

List<Object>  objs = new ArrayList<Object>();
for(Object obj:objs)
{

}




作者: 胡遇潮    时间: 2011-12-23 08:51
List<Object>  ss = new ArrayList<Object>();
for(Object obj  :  ss)
{

}
作者: 郝锡强    时间: 2011-12-23 08:59
本帖最后由 郝锡强 于 2011-12-23 09:01 编辑

for in 的循环取到每个维数上的值。
http://www.ibm.com/developerworks/cn/java/j-forin.html
这个博客写的太详细了

作者: 袁泽宇    时间: 2011-12-23 09:04
这是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();
}
作者: 陈帅雷    时间: 2011-12-23 09:35
语法:
for ( type 变量名:集合变量名 )  { … }
注意事项:
迭代变量必须在( )中定义!
集合变量可以是数组或实现了Iterable接口的集合类





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2