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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 笑轻轻 中级黑马   /  2014-8-16 11:24  /  1246 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

迭代器在视频教程中说被定义成集合中的内部类,但是也可以定义成外部类,但是定义成外部类要new 对象才能访问。我对这段比较疑惑,如果定义成外部类似乎也没有多大不妥吧。这样的设计具体有什么好处,谁可以详细的说明下谢谢

2 个回复

正序浏览
      假设把迭代器迭代数据的功能定义成了一个类,会有这样的问题?不同的集合,由于数据结构不同,所以存储方式也不同,进而他们的获取方式也是不一样的。也就是说在迭代的时候,迭代的方式是不同的、。所以把它定义一个类是不合理的。
    不管哪种集合,都有获取的功能,不知什么时候数据就没有了,所以也有判断功能,把这两个功能抽取出来,定义成接口,无论哪种集合在遍历的时候,只要实现迭代器接口即可。迭代器是以内部类的方式实现的。
回复 使用道具 举报
迭代器定义在外部类是个接口,因为各集合容器的内部存储方式不同,所以各个容器在内部对迭代都有不同的实现。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马