为什么在java.util.Collection上有一个方法iterator()

Dan*_*Dan 15 java collections iterator iterable

为什么在接口java.util.Collection上定义了iterator()方法,它已经扩展了java.util.Iterable,它定义了这个方法.

我正在考虑某种向后兼容性或在集合级别上对方法编写一些JavaDoc的机会.

还有其他想法吗?

Mat*_*att 9

向后兼容性.直到1.5使用for(Object o:iterable)构造才引入Iterable.以前,所有集合都必须提供迭代它们的方法.


Mik*_*e Q 6

我怀疑这只是为了避免从文档的角度出现删除方法.虽然javadoc很好,但很难注意到/一个方法从一个接口移动到一个超级接口.

注意与Closeable相同,也在1.5中引入.

据我所知,从Collection类中删除方法没有二进制兼容性问题.


Dan*_*Dan 3

我对此进行了更多调查,发现 equals() 和 hashcode() 方法也被覆盖。

显然,唯一的原因可能是添加 javadoc - 也许这就是 iterator() 也被覆盖的原因。