黑马程序员技术交流社区

标题: Arrrarylist()里面有hasNext()方法吗? [打印本页]

作者: welfsen    时间: 2015-4-2 00:00
标题: Arrrarylist()里面有hasNext()方法吗?
Arrrarylist a=new Arrrarylist();while(a.iterator.hasNext());
Arrrarylist()里面有hasNext()方法吗?
我怎么在API里没有查到!!
怎么理解呀!!






作者: kapp_tolo    时间: 2015-4-2 00:38
这个是iterator迭代器里面的方法。

作者: P李勇    时间: 2015-4-2 01:45
iterator中有两个方法:hasnext和next
由于ArrayList继承了iterator接口,所以可以使用这个方法
作者: 罗晓飞    时间: 2015-4-2 08:27
用空多研究以下api吧。。。
作者: 怀念子龙    时间: 2015-4-2 10:02
P李勇 发表于 2015-4-2 01:45
iterator中有两个方法:hasnext和next
由于ArrayList继承了iterator接口,所以可以使用这个方法 ...

ArrayList只是实现了Iterable 接口,Iterable接口里面有一个方法可以得到iterator接口。
作者: hsl5430    时间: 2015-4-2 10:12
没有的,这是Iterator里的方法,通过hasNext()去判断Arrrarylist是否还有元素,并通过 next()方法去获取到
作者: P李勇    时间: 2015-4-2 10:27
怀念子龙 发表于 2015-4-2 10:02
ArrayList只是实现了Iterable 接口,Iterable接口里面有一个方法可以得到iterator接口。 ...

soga!{:2_35:}
作者: smile2015    时间: 2015-4-2 10:30
ArrayList类实现了Iterator接口,不是继承关系,而Iterator里面有hasnext(),next()方法,所以ArrayList可以使用这两种方法。
作者: zhangwenjin    时间: 2016-7-12 01:59
api是个难点啊
作者: Mr.Wu    时间: 2016-7-12 08:36
第一步:打开API,查看ArrayList类的方法,发现没有iterator()方法,再看发现有从 java.util.AbstractList 继承的方法 equals, hashCode, iterator, listIterator, listIterator, subList 。那就代表ArrayList可以直接使用其中的iterator()方法了。
第二步:查看 抽象类AbstractList,发现其中有这样的一个方法:public Iterator<E> iterator() ,可能你会有疑问,为啥返回值是接口Iterator.  原因是返回值可以是子父类,体现的是多态的思想。查看源码发现返回值是Itr类的对象(Itr实现了Iterator接口),而Itr类拥有hasNext()和next()方法。
我想这样的解释你一定可以看懂了吧。






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