请耐心等待我,因为我刚接触Java并且刚刚遇到各种集合和Iterable接口。
我在这里有点困惑,因为Java API将iterable定义为具有一个方法的接口:iterator(),它返回一个迭代器对象,该对象与您在调用方法时引用的集合相对应。
我知道您不能直接从接口实例化对象。那么如果Iterator是一个接口,iterator()如何创建一个返回类型为Iterator的对象呢。
我觉得我忽视了一些简单的事情。
提前致谢。
编辑:让我试着澄清一下我的误解。Iterable是一个接口,它要求您在编程的任何数据结构类中定义Iterator iterator()。根据我从API中可以衡量的,Iterable接口不会扩展Iterator。
所以我的问题不是你是否可以实例化一个接口(如重复问题的标记所示),而是数据结构中Iterable的实现如何迫使程序员实现Iterator API中定义的方法
您是否应该定义嵌入在公共数据结构类中的私有迭代器类以及将实例化Iterator对象的公共构造函数?