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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘笑   /  2012-7-16 17:46  /  4782 人查看  /  28 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下是本人的理解:


普通for(1;2;3)循环:操作的基本上是基本数据,是有条件循环,没有条件也可以,但是括号里面的2个分号(;)一个都不能少
增强for(类型 a :as):既可以是普通类型数据 、数组类型,也可以是对象类型(循环集合中的对象),直接操作对象是这个for的特点之一
迭代器:迭代其有iterator和Listiterator两种,iterator是集合的迭代器,Listiterator是list特有的迭代器,但是他是基于iterator的

区别:普通for不能用于对象操作,而增强for和迭代器(iterator、Listiterator)可以

联系:他们操作的东西----大多是----数组类型的,都有角标(set集合除外)

点评

高级for主要处理数组和集合,迭代器主要处理集合,普通for主要处理数组等基本数据  发表于 2012-7-17 00:14
回复 使用道具 举报
普通的for循环这种for循环通常需要三个步骤即 for(初始表达式;条件表达式;递增表达式)有时候递增表达式也可以省去,一般是在使用Iterator迭代时判。
增强的for循环(也就是foreach循环)这种for循环的内部是调用了Iterator实现的(实现了Iterator接口),和Iterator遍历效果是一样主要用于遍历数组、集合的每一个元素。
遍历集合所有元素的话用foreach更加简洁,如果是复杂的循环,还是用for比较好 for功能是跟强大些,支持index取元素,可以使用下标来控制位置。
for循环的操作对象主要是底层以数组为数据结构的数据 ,比如ArrayList ,array。
iterator的操作对象以链表为数据结构的数据为主, 比如 HashSet, LinkedList 。

评分

参与人数 1黑马币 +30 收起 理由
刘笑 + 30 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 陆鹏 于 2012-7-16 23:23 编辑

大家总结得都挺好,不过结构有点乱,我自己总结了下,梳理下结构,让大家思路清晰些。
回复 使用道具 举报
本帖最后由 陆鹏 于 2012-7-16 23:18 编辑

For循环,
  操作对象:基本数据类型,数组,字符串
  好处:可以对数据进行操作,

高级For循环:
  操作对象:操作数组和集合。
  好处:是迭代器简化书写方式,主要目的是简化书写
      
  弊端:对集合或者数组进行遍历,只能获取集合或者数组中的元素。但是不能对集         合或数组中的元素进行操作。
                内部用迭代实现

迭代器:
  操作对象:主要以链表为数据结构的数据为主,比如List集合体系。
  除了遍历,还可以删除集合中的元素。列表迭代器中可增删改查
  好处:提高集合框架的扩展性
  
  
高级for和普通for区别:
高级for必须有被遍历的目标,比如打印“hello world”就难以直接表达。

高级for与迭代区别:
  高级for循环是迭代的一种简化书写格式,但是对集合进行遍历,只能获取集合中的元素。但是不能对集合中的元素进行操作。

建议:
1.遍历数组建议用普通for,可获取角标,对角标进行操作。
2.如果需要对集合元素进行操作,要用迭代器。
3.对数据如果只是获取的话,用高级for循环可简化书写。


自己总结整理的,如有疏漏不对的地方,欢迎指出补充。

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 自己总结的啊,很好!

查看全部评分

回复 使用道具 举报
本帖最后由 陆鹏 于 2012-7-16 23:21 编辑

写多了,关掉。
回复 使用道具 举报
按照视频总结:
区别:1、高级for和普通for的区别:高级for有局限性,必须有遍历的目标,例如打印100遍“hello word”,只能用普通for
         2、高级for和迭代器的区别:高级for对集合遍历,只能获取元素,不能对集合操作。迭代器除了对集合遍历还能对集合中的元素进行remove操作。
         如果使用ListIterator,还可以在遍历的过程中对集合进行增删改查的操作
联系:1、高级for的底层原理是迭代器,凡是支持迭代器的集合都支持高级for,高级for是迭代器的简写格式
      2、在遍历数组时建议用普通for,可获取角标,对角标进行操作。

点评

与上面有雷同  发表于 2012-7-17 00:22
回复 使用道具 举报
                    区别:高级的for()循环可以实现查找但是不能用于删除元素,但是迭代器可以;
                           同时高级for循环内部也是用迭代器实现的,所以高级for循环的应用面是比较小的
             联系:迭代跟for其实就是个包含关系,一次迭代运行里可以包含多个FOR循环,而对于参数,每次迭代的时候,参数会根据你的设置来初始化一个值,初始化完后,在执行for循环的时候这个参数的值并不发生改变
回复 使用道具 举报
for循环:虽然书写麻烦,但是有一个最大的优点就是可以通过下标来访问元素,操作方便
高级for:最主要的目的还是简化书写,对于引用类型变量的数组和容器,还有一个特点就是可以对元素进行修改
迭代器:缺点是不能访问指定的元素,只能顺序遍历,而且容易和容器里的方法一同使用,产生错误操作
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马