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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何清林 中级黑马   /  2014-3-1 23:44  /  1123 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

迭代器的特点?我这样解释对么?
我的回答:迭代器是一个定义在集合内部的取出方式。凡是集合就具有迭代器,是集合共性的方法。
请问你有什么精辟的高见总结呢?
答: -----------------------

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

4 个回复

倒序浏览
Collection集合中,实现了Iterator接口的iterator方法,调用该方法就会返回一个Iterator的子类对象,用于对该集合进行迭代操作。 当然创建iterator对象的过程是在集合内部实现的,这个对象是依附于创建它的集合之上,它与集合中的元素相关联,从而实现对集合的遍历。
像楼主那样理解也是可以的,简单易懂

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
迭代器模式的优点有:
•简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户需要在对集合了解很清楚的前提下,自行遍历对象,但是对于hash表来说,用户遍历起来就比较麻烦了。而引入了迭代器方法后,用户用起来就简单的多了。
•可以提供多种遍历方式,比如说对有序列表,我们可以根据需要提供正序遍历,倒序遍历两种迭代器,用户用起来只需要得到我们实现好的迭代器,就可以方便的对集合进行遍历了。
•封装性良好,用户只需要得到迭代器就可以遍历,而对于遍历算法则不用去关心。

        迭代器模式的缺点:
•对于比较简单的遍历(像数组或者有序列表),使用迭代器方式遍历较为繁琐,大家可能都有感觉,像ArrayList,我们宁可愿意使用for循环和get方法来遍历集合。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
不知你说的集合是否有包括Map?Map可没有迭代器,它要通过Set才能调用迭代器
  Set<String> set = hashmap.keySet();
  Iterator<String> it = set.iterator();
   while(it.hasNext()){

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
并不是所有的集合都可以使用迭代器Iterator的,Iterator只适用于Collection。如果其他集合可以转成Collection集合,那么就能使用Iteratoer迭代。 一般情况下,增for还是用得比较多,迭代器繁琐。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马