Iterator接口的疑惑

fskjb01 2009-06-12 09:11:05
Iterator接口中有三个方法hasNext(),next(),remove(),按照接口的规定实现它的类必须实现该接口的全部对象。那么ArrayList,LinkList,HashSet等都是实现了该Iterator接口,怎么不用实现该三个方法呢,取而代之的是iterator()方法,遍历是通过她的返回对象条用hasNext(),next(),remove()。究竟是为什么呢!!
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc130314 2009-06-13
  • 打赏
  • 举报
回复
如果 List 实现了 Iterator;
hasNext() 遍历一遍之后就不能遍历了。
但是如果用一个方法返回一个对象来遍历,那么遍历完之后就可以舍弃这个对象。重新生成一个对象进行遍历。
billhepeng 2009-06-13
  • 打赏
  • 举报
回复
看看java 编程思想
hwhack 2009-06-12
  • 打赏
  • 举报
回复
楼上的:ArrrayList继承了AbstractCollection
而AbstractCollection则实现了Iterator接口
说明了你的疑惑。
possibleonline 2009-06-12
  • 打赏
  • 举报
回复
你仔细看看
java.lang.Object
extended by java.util.AbstractCollection<E>
extended by java.util.AbstractList<E>
extended by java.util.ArrayList<E>
ArrrayList继承了AbstractCollection
而AbstractCollection则实现了Iterator接口
java.lang.Object
extended by java.util.AbstractCollection<E>
extended by java.util.AbstractSet<E>
extended by java.util.HashSet<E>
java.lang.Object
extended by java.util.AbstractCollection<E>
extended by java.util.AbstractList<E>
extended by java.util.AbstractSequentialList<E>
extended by java.util.LinkedList<E>

也是一样
myairland 2009-06-12
  • 打赏
  • 举报
回复
下面僅屬於個人意見

iterator相當於一個指針,它可以進行前進,刪除當前結點.

如果ArrayList有這些方法的話,會感覺很怪,ArrayList.next()要返回什麼啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧