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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗的小胖子 中级黑马   /  2014-2-21 14:54  /  1295 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奋斗的小胖子 于 2014-2-22 15:20 编辑

两者是指?二者有什么区别?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

4 个回复

倒序浏览
迭代:
1、自己调用自己的方法,或者称递归。
2、还有一种解释:很多程序有迭代器。这是一种用于“遍历”数组的工具对象。一般遍历一个数组都是使用循环变量从0到最后一个,或者使用链表遍历量表中内容。使用迭代器可以不关注数组的具体实现方式,遍历数组中所有成员。

遍历:
对数据结构中每一个成员都进行一次访问的操作就是遍历。比如遍历列表。最为常见得问题是遍历树,遍历树的常见方法有:先序/中序/后序,或者按照另一个纬度划分有,广度遍历和深度遍历。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
迭代:1、自己调用自己的方法,或者称递归。这个应该不用多说。
         2、还有一种解释:很多程序有迭代器。这是一种用于“遍历”数组的工具对象。一般遍历一个数组都是使用循环变量从0到最后一个,或者使用链表遍历量表中内容。使用迭代器可以不关注数组的具体实现方式,遍历数组中所有成员。
遍历:
对数据结构中每一个成员都进行一次访问的操作就是遍历。比如遍历列表。最为常见得问题是遍历树,遍历树的常见方法有:先序/中序/后序,或者按照另一个纬度划分有,广度遍历和深度遍历。相关具体算法可以查找其他资料

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
迭代器其实就是将遍历的方法封装起来
比如你想遍历数组就要用下标,那么遍历ArrayList,LinkedList,HashSet等集合是不是应该都有自己的不同的遍历方式?
如果每个几个集合的遍历方式都不同,使用起来是不是很麻烦很痛苦,因为你要记住每个集合的遍历方式
所以定义一个Iterator接口,每个集合都用自己的方式复写hasNext() 、next() 、remove() 三个方法,要遍历的时候直接使用迭代器就可以了,其实这里用的是多态,父类(Iterator)的引用指向子类的实例(如ArrayList的实例等)。
这样每次你要遍历,用Iterator就可以了,不是简单多了。
其实毕向东老师关于这个问题已经说得很明白了,操作杆(Iterator)——夹子(每个集合的具体方法)的比喻非常贴切。操作的时候只管拿操作杆,夹子长什么样不用管。
回复 使用道具 举报
首先解释迭代。
迭代简单的理解,重文字上可以才分为 迭(叠)加,代入(数)
是利用计算机高速、可从重复性高的特点进行计算的模式
迭代的最简单应用就是,把四维整型数组,中的内容全部输出。那就用四层循环慢慢取吧。
每次循环做的事情基本上是一件事,无外乎就是角标自增,然后取数。

再说遍历。
遍历很好理解,通过某种方式,不论是重头到尾,还是用Hash算法,
反正是从头到尾把数据结构(链表、数组、树、图)所有的节点都访问一遍,就叫遍历。
像刚才,四维数组取数,就是一个遍历的过程,
简单的使用迭代的方式,从第一个元素一直遍历(取)到最后一个元素。
稍微复杂的还有遍历二叉树,遍历欧拉图等。都用相应的算法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马