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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨增坤 于 2013-8-27 22:11 编辑

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

评分

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

查看全部评分

5 个回复

倒序浏览
for循环一般用来处理比较简单的有序的,可预知大小的集合或数组
  foreach可用于遍历任何集合或数组,而且操作简单易懂,他唯一的不好就是需要了解集合内部类型
  iterator是最强大的,他可以随时修改或者删除集合内部的元素,并且是在不需要知道元素和集合的类   型的情况下进行的(原因可参考第三点:多态差别),当你需要对不同的容器实现同样的遍历方式时,迭代器是最好的选择!

评分

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

查看全部评分

回复 使用道具 举报
以下是我对三者的理解:
for 循环变量初始化只在首次进入时执行一次,每次执行循环之前,必须进行结束条件判断
foreach 如同名字一样遍历每个,要分清它可以遍历的对象:

回复 使用道具 举报

以下是我对三者的理解:
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();

评分

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

查看全部评分

回复 使用道具 举报
楼主,如果问题解决了,请把问题的"未解决"更改为"已解决"!
谢谢合作!

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

评分

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

查看全部评分

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