黑马程序员技术交流社区
标题: 迭代器的特点?我这样解释对么? [打印本页]
作者: 何清林 时间: 2014-3-1 23:44
标题: 迭代器的特点?我这样解释对么?
迭代器的特点?我这样解释对么?
我的回答:迭代器是一个定义在集合内部的取出方式。凡是集合就具有迭代器,是集合共性的方法。
请问你有什么精辟的高见总结呢?
答: -----------------------
作者: 戚兴海 时间: 2014-3-1 23:55
Collection集合中,实现了Iterator接口的iterator方法,调用该方法就会返回一个Iterator的子类对象,用于对该集合进行迭代操作。 当然创建iterator对象的过程是在集合内部实现的,这个对象是依附于创建它的集合之上,它与集合中的元素相关联,从而实现对集合的遍历。
像楼主那样理解也是可以的,简单易懂
作者: 曾振华 时间: 2014-3-2 00:00
迭代器模式的优点有:
•简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户需要在对集合了解很清楚的前提下,自行遍历对象,但是对于hash表来说,用户遍历起来就比较麻烦了。而引入了迭代器方法后,用户用起来就简单的多了。
•可以提供多种遍历方式,比如说对有序列表,我们可以根据需要提供正序遍历,倒序遍历两种迭代器,用户用起来只需要得到我们实现好的迭代器,就可以方便的对集合进行遍历了。
•封装性良好,用户只需要得到迭代器就可以遍历,而对于遍历算法则不用去关心。
迭代器模式的缺点:
•对于比较简单的遍历(像数组或者有序列表),使用迭代器方式遍历较为繁琐,大家可能都有感觉,像ArrayList,我们宁可愿意使用for循环和get方法来遍历集合。
作者: zjf 时间: 2014-3-2 00:17
不知你说的集合是否有包括Map?Map可没有迭代器,它要通过Set才能调用迭代器
Set<String> set = hashmap.keySet();
Iterator<String> it = set.iterator();
while(it.hasNext()){
作者: 还是回去火星吧 时间: 2014-3-2 02:10
并不是所有的集合都可以使用迭代器Iterator的,Iterator只适用于Collection。如果其他集合可以转成Collection集合,那么就能使用Iteratoer迭代。 一般情况下,增for还是用得比较多,迭代器繁琐。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |