黑马程序员技术交流社区
标题: for循环 [打印本页]
作者: 周一川 时间: 2013-3-22 23:33
标题: for循环
本帖最后由 周一川 于 2013-3-22 23:35 编辑
for循环和高级for循环有什么区别
作者: 葛伟 时间: 2013-3-22 23:37
本帖最后由 葛伟 于 2013-3-22 23:38 编辑
1.增强for循环和iterator遍历的效果是一样的,也就说
增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。
作者: MyNameIs520 时间: 2013-3-22 23:50
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
For和Foreach语句的主要区别为:
1.for可以不逐个遍历,比如每隔一个遍历一个,也可以从前向后遍历,从后向前。但是foreach不能从后向前遍历,只能从前向后,并且foreach只能逐个遍历。
2.foreach中不能向迭代变量赋值,不能修改遍历的对象本身。for循环可以
3.foreach 遍历的对象是集合,效率较for循环更高
4.for循环通常循环次数已知,foreach就不一定~~
作者: 王_强 时间: 2013-3-23 09:12
楼主:
加强for循环:跟迭代器的功能类似,从头到尾遍历。
但是 普通for:我们可以控制不需要遍历集合中的全部的数据,可以是部分的数据。
个人认为:普通for功能比加强for循环功能强大些,但是在某些场合,加强for比普通for方便好用些!
就这些,希望能帮助到你!
作者: 柳 德 彬 时间: 2013-3-23 21:10
普通for循环的效率更好!
作者: blackcaismine 时间: 2013-3-23 21:51
本帖最后由 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 配合迭代器使用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |