This question already has an answer here:
Method iterator() declared in java.util.Collection and in java.lang.Iterable, its superinterface?
(1个答案)
去年关闭。
我的Java版本是“ 1.8.0_192”
这是Collection界面。
这是Iterable接口。
(1个答案)
去年关闭。
我的Java版本是“ 1.8.0_192”
/**
* Returns an iterator over the elements in this collection. There are no
* guarantees concerning the order in which the elements are returned
* (unless this collection is an instance of some class that provides a
* guarantee).
*
* @return an <tt>Iterator</tt> over the elements in this collection
*/
Iterator<E> iterator();
这是Collection界面。
/**
* Returns an iterator over elements of type {@code T}.
*
* @return an Iterator.
*/
Iterator<T> iterator();
这是Iterable接口。
最佳答案
确实没有理由同时拥有两者。如果查看since
的Collection
部分,您会看到它是在1.2中添加的,而Iterable
是在1.5中添加的,因此它似乎是“历史性的”。
我们将不得不问实际的作者,为什么没有删除多余的声明。话虽如此,两个地方都没有负面影响。
不,在两者上都使用iterator
方法没有特殊含义。
关于java - Collection扩展了Iterable,但是为什么Collection声明Iterable Function(与Iterable相同),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56764573/
10-12 05:49