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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Arrrarylist a=new Arrrarylist();while(a.iterator.hasNext());
Arrrarylist()里面有hasNext()方法吗?
我怎么在API里没有查到!!
怎么理解呀!!





9 个回复

正序浏览
Mr.Wu 中级黑马 2016-7-12 08:36:40
10#
第一步:打开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()方法。
我想这样的解释你一定可以看懂了吧。

回复 使用道具 举报
api是个难点啊
回复 使用道具 举报
ArrayList类实现了Iterator接口,不是继承关系,而Iterator里面有hasnext(),next()方法,所以ArrayList可以使用这两种方法。
回复 使用道具 举报
怀念子龙 发表于 2015-4-2 10:02
ArrayList只是实现了Iterable 接口,Iterable接口里面有一个方法可以得到iterator接口。 ...

soga!{:2_35:}
回复 使用道具 举报
没有的,这是Iterator里的方法,通过hasNext()去判断Arrrarylist是否还有元素,并通过 next()方法去获取到
回复 使用道具 举报
P李勇 发表于 2015-4-2 01:45
iterator中有两个方法:hasnext和next
由于ArrayList继承了iterator接口,所以可以使用这个方法 ...

ArrayList只是实现了Iterable 接口,Iterable接口里面有一个方法可以得到iterator接口。
回复 使用道具 举报
用空多研究以下api吧。。。
回复 使用道具 举报
iterator中有两个方法:hasnext和next
由于ArrayList继承了iterator接口,所以可以使用这个方法
回复 使用道具 举报
这个是iterator迭代器里面的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马