Collection扩展了Iterable,但是为什么Collection声明Iterable Function(与Iterable相同)

时间:2019-06-26 03:00:26

标签: java collections

我的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();

这是“收藏”界面。

/**
 * Returns an iterator over elements of type {@code T}.
 *
 * @return an Iterator.
 */
Iterator<T> iterator();

这是Iterable接口。

1 个答案:

答案 0 :(得分:0)

实际上没有理由同时拥有两者。如果您查看Collection的{​​{1}}部分,您会看到它是在1.2中添加的,而Iterable是在1.5中添加的,因此它似乎是“历史性的”。

我们将不得不问实际的作者为什么没有删除多余的声明。话虽如此,两个地方都没有负面影响。

不,在两者上都使用iterator方法没有特殊意义。