Iterable<>
是 Java.lang
包中定义的一个接口,
根据 Java 文档的介绍该接口主要声明了一个Iterator()
方法,该方法返回一个Iterator<>
接口。
Java 文档 - Iterable
那我们接下来看一看Iterator<>
接口主要内容,Iterator<>
接口的 Java 文档里说明
Iterator<>
接口主要声明了三个方法。
Java 文档 - Iterator
hasNext()
next()
remove()
看到这里就很清楚了,实现了Iterator<>
接口的类可以进行迭代遍历,Iterator<>
接口通过对以上3个方法的封装实现了对遍历访问的支持。Java里的集合类都实现了Iterator<>
接口。
一个简单的应用例子。
Student.java - 基本的数据类
MyIterableClass.java - 实现了Iterator接口
APP.java
运行结果如下。
有人可能会问,为什么不直接将hasNext()
,next()
方法放在Iterable接口中,其他类直接实现就可以了?
原因是有些集合类可能不止一种遍历方式,实现了 Iterable 的类可以再实现多个 Iterator 内部类,通过返回不同的 Iterator 实现不同的遍历方式,这样更加灵活。如果把两个接口合并,就没法返回不同的 Iterator 实现类了。