黑马程序员技术交流社区

标题: 最近学习集合框架中遇到一个疑问 [打印本页]

作者: x378320002    时间: 2013-5-23 16:20
标题: 最近学习集合框架中遇到一个疑问
本帖最后由 x378320002 于 2013-5-24 08:38 编辑

最近学习集合框架中遇到一个疑问,集合内的对象往外去的时候是用迭代器,
大致过程我理解的是:
1,集合对象调用collection接口内的迭代器功能
2,该功能返回一个迭代器接口类型的对象
3,由该迭代器对象再调用集合内的next取出功能,完成取出
   因为集合对象内的next功能复写了迭代器接口内的next功能

我不懂的是为什么要间接的  先用collection接口调出迭代器,再用迭代器调用next呢,
为什么不能把next等功能放在collection接口内,由collection接口调用next功能呢,
我看了源码,知道集合内的迭代器其实就是个内部类,如果不写内部类,直接把next功能定义在
集合内,由collection接口调用,我发现也行啊,求解释,用迭代器有什么优势或者好处?
作者: 高波    时间: 2013-5-23 16:35
接口是用来功能扩展的。
如果你把迭代器的hasNext()和next()功能定义在collection接口中,你每次实现collection接口时,无论你需不需要取出集合中的元素,都要去重写这两个功能。
如果把这两个功能封装成一个接口,就可以在需要取出集合元素时再去实现这个接口,重写里面的方法。




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