黑马程序员技术交流社区

标题: 关于集合List迭代的问题 [打印本页]

作者: shi980088    时间: 2014-5-28 20:09
标题: 关于集合List迭代的问题
前几天老师讲了三种迭代集合的方式,第一种是普通的for循环迭代集合,第二种是用Iterator这个迭代器迭代集合,第三种是foreach迭代集合,我想知道这三种有什么区别么?分别有什么好处,什么时候用?
作者: 谢振宣    时间: 2014-5-28 22:30
  1. 三种遍历方式:for语句,Iterator,高级for
  2. for (初始化表达式;循环判断表达式;循环后要操作的表达式)
  3. {
  4.         循环中要操作的语句;
  5. }
  6. while (iterator.hasNext)
  7. {
  8.         操作iterator.next;
  9. }
  10. for(对象中所包含数据的类型 参数:被遍历的对象)
  11. {
  12.         操作参数;
  13. }
  14. 1.for语句只适合对有角标的对象进行遍历,并且可以通过对角标的判断,做一些其它的操作。
  15.   也可以自定义一些条件,操作某些需要被循环的语句,此时的操作就不再是遍历。
  16. 2.Iterator是专门对集合中的元素进行遍历的一个工具,不管集合中的元素是否是有序的,
  17.   并且可以对被遍历的元素进行其它操作,如删除,修改。
  18. 3.高级for是Iterator的一种简化形式,只有取出元素的功能,不能对元素进行其它操作,如删除,修改。
  19.   与for语句的区别是,高级for必须有被遍历的对象,for语句除了遍历,还有操作循环语句的功能。
复制代码

作者: shi980088    时间: 2014-5-28 23:18
谢振宣 发表于 2014-5-28 22:30

说的很好,谢了,又涨姿势了
作者: 披头骑士    时间: 2014-5-28 23:37
实际运用的时候更多还是看习惯
作者: 苏周周    时间: 2014-5-29 00:14
我觉还是迭代器用起来方便,可以增,删,改,查;大力推荐
作者: zhuyanmei    时间: 2014-5-29 09:12
1. for需要知道集合或数组的大小,而且需要是有序的,不然无法遍历;
    foreach和iterator都不需要知道集合或数组的大小,他们都是得到集合内的每个元素然后进行处理;
2.  for和foreach都需要先知道集合的类型,甚至是集合内元素的类型,即需要访问内部的成员,不能实现态;
     iterator是一个接口类型,他不关心集合或者数组的类型,而且他还能随时修改和删除集合的元素;

作者: Dark_Horse    时间: 2014-5-29 11:33
又涨知识了啊




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