黑马程序员技术交流社区

标题: 普通for循环、foreach、Iterator有啥区别,性能上差别大吗? [打印本页]

作者: jadeite    时间: 2013-8-27 08:21
标题: 普通for循环、foreach、Iterator有啥区别,性能上差别大吗?
本帖最后由 杨增坤 于 2013-8-27 22:11 编辑

普通for循环、foreach、Iterator有啥区别,性能上差别大吗?

作者: .....淡定    时间: 2013-8-27 08:44
for循环一般用来处理比较简单的有序的,可预知大小的集合或数组
  foreach可用于遍历任何集合或数组,而且操作简单易懂,他唯一的不好就是需要了解集合内部类型
  iterator是最强大的,他可以随时修改或者删除集合内部的元素,并且是在不需要知道元素和集合的类   型的情况下进行的(原因可参考第三点:多态差别),当你需要对不同的容器实现同样的遍历方式时,迭代器是最好的选择!
作者: 范龙波    时间: 2013-8-27 09:57
以下是我对三者的理解:
for 循环变量初始化只在首次进入时执行一次,每次执行循环之前,必须进行结束条件判断
foreach 如同名字一样遍历每个,要分清它可以遍历的对象:


作者: 范龙波    时间: 2013-8-27 10:08

以下是我对三者的理解:
for  
注意:循环变量初始化只在首次进入时执行一次,每次执行循环之前,必须进行结束条件判断
foreach
如同名字一样遍历每个,这里要注意它可以遍历哪些对象:1.数组 ,2实现Iteratori的集合
iterator
对于这个迭代器,主要用在set和map集合中, 在set集合中通过 collection.iterator()返回这个迭代器 在通过高级for遍历所有元素拿到目标元素.
对面map用以下三种方式拿到set集合 ,重复上面步骤做遍历操作
Set entrySet = map.entrySet();
Set keySet = map.keySet();
Collection values = map.values();
作者: 杨增坤    时间: 2013-8-27 18:01
楼主,如果问题解决了,请把问题的"未解决"更改为"已解决"!
谢谢合作!

更改方法:http://bbs.itheima.com/thread-71308-1-1.html
作者: yangqing    时间: 2013-8-27 20:45
普通for循环能控制循环的次数等 使循环具有可控性。
foreach 比较简便,当不需要对数组集合进行操作时建议使用。
迭代器的话只能操作单列集合,主要用在Set集合中。map集合是键值对存储没有迭代器的 ,必须将其转换成Set集合。方法如楼上所述。 然后进行操作。




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