JAVA中,Iterator接口里方法实现的问题

比如这个语句Iteratori=list.iterator(),说明必有一个实现Iterator的类,查资料说,是某个内部类实现了它,可是对于hashset类,array... 比如这个语句Iterator i = list.iterator(),说明必有一个实现Iterator的类,查资料说,是某个内部类实现了它,可是对于hashset类,arraylist,vector这些实现的类中,其成员方法中本身就有Iterator iterator()这个返回Iterator类型的,还没开始实现Iterator接口就开始返回多态Iterator,这是否不妥? 展开
 我来答
匿名用户
2013-07-28
展开全部
Iterator()方法内部,肯定是有类实现了Iterator接口的,并且在Iterator方法内部就创建了每个集合对应的Iterator对象,然后return出来。 “Iterator iterator()”这个方法执行完成后,创建了Iterator对象,然后返回出这个对象的地址,就是方法的返回值。“Iterator i = list.iterator()"这个返回值(也就是指向对象的地址)又马上赋值给了变量i。所以变量i就指向了 iterator()方法内部创建的iterator对象。
匿名用户
2013-07-28
展开全部
hashset,arraylist,vector的iterator()方法是实现了Iterable接口,所有集合类SET,LIST等都实现了Iterable,Collection接口,Iterable接口只有 iterator()方法返回 Iterator,很明显集合类里有都内部类实现了
Iterator接口
你说“还没开始实现Iterator接口就开始返回多态Iterator”,内部类不是已经实现了吗,返回一个接口是一个很不错的做法,实现上在很多地方都用到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式