A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马张伟 于 2011-12-23 09:33 编辑

什么是高级for循环,高级for循环的参数是什么
普通for循环三个参数
for(int i=0;i<10;i++)
高级的呢:
如  for(String name :names)里面的参数分别是什么意思

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

5 个回复

倒序浏览
for(元素类型 变量名 : Collection集合|数组)
{

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

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

}



评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
List<Object>  ss = new ArrayList<Object>();
for(Object obj  :  ss)
{

}
回复 使用道具 举报
本帖最后由 郝锡强 于 2011-12-23 09:01 编辑

for in 的循环取到每个维数上的值。
http://www.ibm.com/developerworks/cn/java/j-forin.html
这个博客写的太详细了
回复 使用道具 举报
这是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();
}

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
语法:
for ( type 变量名:集合变量名 )  { … }
注意事项:
迭代变量必须在( )中定义!
集合变量可以是数组或实现了Iterable接口的集合类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马