黑马程序员技术交流社区
标题:
迭代输出与遍历输出
[打印本页]
作者:
奋斗的小胖子
时间:
2014-2-21 14:54
标题:
迭代输出与遍历输出
本帖最后由 奋斗的小胖子 于 2014-2-22 15:20 编辑
两者是指?二者有什么区别?
作者:
曾振华
时间:
2014-2-21 15:19
迭代:
1、自己调用自己的方法,或者称递归。
2、还有一种解释:很多程序有迭代器。这是一种用于“遍历”数组的工具对象。一般遍历一个数组都是使用循环变量从0到最后一个,或者使用链表遍历量表中内容。使用迭代器可以不关注数组的具体实现方式,遍历数组中所有成员。
遍历:
对数据结构中每一个成员都进行一次访问的操作就是遍历。比如遍历列表。最为常见得问题是遍历树,遍历树的常见方法有:先序/中序/后序,或者按照另一个纬度划分有,广度遍历和深度遍历。
作者:
迦罗叶
时间:
2014-2-21 15:31
迭代:1、自己调用自己的方法,或者称递归。这个应该不用多说。
2、还有一种解释:很多程序有迭代器。这是一种用于“遍历”数组的工具对象。一般遍历一个数组都是使用循环变量从0到最后一个,或者使用链表遍历量表中内容。使用迭代器可以不关注数组的具体实现方式,遍历数组中所有成员。
遍历:
对数据结构中每一个成员都进行一次访问的操作就是遍历。比如遍历列表。最为常见得问题是遍历树,遍历树的常见方法有:先序/中序/后序,或者按照另一个纬度划分有,广度遍历和深度遍历。相关具体算法可以查找其他资料
作者:
徐芾清
时间:
2014-2-22 10:59
迭代器其实就是将遍历的方法封装起来
比如你想遍历数组就要用下标,那么遍历ArrayList,LinkedList,HashSet等集合是不是应该都有自己的不同的遍历方式?
如果每个几个集合的遍历方式都不同,使用起来是不是很麻烦很痛苦,因为你要记住每个集合的遍历方式
所以定义一个Iterator接口,每个集合都用自己的方式复写hasNext() 、next() 、remove() 三个方法,要遍历的时候直接使用迭代器就可以了,其实这里用的是多态,父类(Iterator)的引用指向子类的实例(如ArrayList的实例等)。
这样每次你要遍历,用Iterator就可以了,不是简单多了。
其实毕向东老师关于这个问题已经说得很明白了,操作杆(Iterator)——夹子(每个集合的具体方法)的比喻非常贴切。操作的时候只管拿操作杆,夹子长什么样不用管。
作者:
浅一蓝
时间:
2014-2-22 17:26
首先解释迭代。
迭代简单的理解,重文字上可以才分为 迭(叠)加,代入(数)
是利用计算机高速、可从重复性高的特点进行计算的模式
迭代的最简单应用就是,把四维整型数组,中的内容全部输出。那就用四层循环慢慢取吧。
每次循环做的事情基本上是一件事,无外乎就是角标自增,然后取数。
再说遍历。
遍历很好理解,通过某种方式,不论是重头到尾,还是用Hash算法,
反正是从头到尾把数据结构(链表、数组、树、图)所有的节点都访问一遍,就叫遍历。
像刚才,四维数组取数,就是一个遍历的过程,
简单的使用迭代的方式,从第一个元素一直遍历(取)到最后一个元素。
稍微复杂的还有遍历二叉树,遍历欧拉图等。都用相应的算法。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2