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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲁中需 中级黑马   /  2012-10-24 20:31  /  1489 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 鲁中需 于 2012-10-25 21:58 编辑

for循环与高级for循环(foreach循环)的区别是什么?能用高级for循环来修改数据吗?在取集合中的元素是可以用迭代器迭代也可用高级for循环取元素,这两种方法又有何区别?

评分

参与人数 1黑马币 +6 收起 理由
谭立文 + 6

查看全部评分

5 个回复

正序浏览
刘丽娜 发表于 2012-10-24 21:16
增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能 ...

嗯,受教了,谢谢。
回复 使用道具 举报
增强for只能遍历不能查询     不能有其他操作了。
传统for循环可以查询指定位置上的元素
迭代器迭代也可用高级for循环取元素区别:
增强for  只能遍历。
迭代器除了遍历之外还可以remove  
如果是List集合中的ListIterator  还可以进行增删等更多操作。

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
增强for循环的内部也就是调用iteratoer实现的(可以查看编译后的文件),但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容。不能获取下标等。
2.ArrayList由于使用数组实现,因此下标明确,最好使用普通循环。
3.而对于 LinkedList 由于获取一个元素,要从头开始向后找,因此建议使用 增强for循环,也就是iterator。
具体内容可查看此文章:http://blog.csdn.net/yinzhuo1/article/details/7302351
里面有例子 讲的很详细  谢谢

评分

参与人数 1技术分 +1 收起 理由
谭立文 + 1

查看全部评分

回复 使用道具 举报
增强for循环只能用于遍历数组或者Collection集合。
只能用于遍历获取元素,不能进行更多的操作。
回复 使用道具 举报
增强for只能遍历不能查询
传统for循环可以查询指定位置上的元素        foreach只能间接的遍历map
迭代器除了遍历还可以进行remove操作,如果是listiterator还可以在遍历的过程中进行增删操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马