Java中的Iterator接口和Iterable接口

Iterator接口和Iterable接口

下面是我自己关于两个接口的一些总结,若有不严谨或不准确的地方请指出,谢谢!

Iterator接口

Iterator接口内的方法:hasNext() ,next(),remove()
理解:某类实现这个接口的话,需要重写实现上述功能,来实现自定义迭代器的基础功能

Iterable接口

Iterable接口内的方法:iterator(),forEach(),spliterator()
理解:某类实现这个接口的话,就代表该接口可以用迭代器迭代(迭代规则可以在自定义迭代器内实现),

iterator()方法返回一个迭代器类,这个类就是自己写的实现了Iterator接口的迭代器类

总结

迭代器接口Iterator定义了一个迭代器需要具备的基本要素,可迭代接口Iterable规定了:“如果你可迭代,则你就要1.能获取迭代器2.能foreach操作等等”

举例

1.层级架构:ArrayList类实现List接口,List接口实现Collection接口,Collection接口实现Iterable接口

2.List接口则继承了Iterable接口的Iterator iterator()方法,List接口内的该方法规定了任意实现类及其子类都要有获取迭代器的方法

3.ArrayList类实现了List接口,进一步规定了Iterator iterator()方法返回的是一个Itr类,这个类就是自定义的迭代类,Itr类是ArrayList的内部类,实现了Iterator接口。(P.S.此处是多态运用,iterator()返回值类型是Iterator接口,所以实际返回任意其实现类也可以,Itr类就是Iterator的实现类)规定了ArrayList迭代器的几个基本方法(包括hasNext() ,next(),remove()三个必须重写的方法)

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值