JAVA中,Iterator接口里方法实现的问题
比如这个语句Iteratori=list.iterator(),说明必有一个实现Iterator的类,查资料说,是某个内部类实现了它,可是对于hashset类,array...
比如这个语句Iterator i = list.iterator(),说明必有一个实现Iterator的类,查资料说,是某个内部类实现了它,可是对于hashset类,arraylist,vector这些实现的类中,其成员方法中本身就有Iterator iterator()这个返回Iterator类型的,还没开始实现Iterator接口就开始返回多态Iterator,这是否不妥?
展开
2个回答
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”,内部类不是已经实现了吗,返回一个接口是一个很不错的做法,实现上在很多地方都用到
Iterator接口
你说“还没开始实现Iterator接口就开始返回多态Iterator”,内部类不是已经实现了吗,返回一个接口是一个很不错的做法,实现上在很多地方都用到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询