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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周一川 中级黑马   /  2013-3-22 23:33  /  1940 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 周一川 于 2013-3-22 23:35 编辑

for循环和高级for循环有什么区别

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-23 17:29

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 葛伟 于 2013-3-22 23:38 编辑

1.增强for循环和iterator遍历的效果是一样的,也就说
增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
For和Foreach语句的主要区别为:
    1.for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前。但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。
    2.foreach中不能向迭代变量赋值,不能修改遍历的对象本身。for循环可以
    3.foreach 遍历的对象是集合,效率较for循环更高
    4.for循环通常循环次数已知,foreach就不一定~~

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
楼主:
  加强for循环:跟迭代器的功能类似,从头到尾遍历。
  但是 普通for:我们可以控制不需要遍历集合中的全部的数据,可以是部分的数据。
  
个人认为:普通for功能比加强for循环功能强大些,但是在某些场合,加强for比普通for方便好用些!
  就这些,希望能帮助到你!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
普通for循环的效率更好!
回复 使用道具 举报
本帖最后由 blackcaismine 于 2013-3-23 21:57 编辑

新型 for 循环 for—each,用于追求数组与集合的遍历方式统一
1、数组举例:
int[]  ss  = {1,2,3,4,5,6};
for(int i=0; i<ss.length; i++){
System.out.print(ss);
}  //以上是以前的 for 循环遍历,比较下面的for—each
System.out.println();
for(int i : ss){
System.out.print(i);
2、集合举例:
List  ll  =  newArrayList();
for(Object  o : ll ){
System.out.println(o);
}
注:凡是实现了java.lang.Iterable接口的类就能用 for—each遍历
用 for—each时,不能用list.remove()删除,因为他内部的迭代器无法调用,造成多线程出错。
这时只能用 for 配合迭代器使用。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马