【发布时间】:2016-02-15 08:06:36
【问题描述】:
有人可以向我解释为什么Iterator<E> iterator(); 方法是在java.util.Collection 中定义的吗?收藏已扩展java.lang.Iterable;这种方法是多余的。这是为了方便吗?
【问题讨论】:
标签: java collections
有人可以向我解释为什么Iterator<E> iterator(); 方法是在java.util.Collection 中定义的吗?收藏已扩展java.lang.Iterable;这种方法是多余的。这是为了方便吗?
【问题讨论】:
标签: java collections
Collection interface 是在 Java 1.2 中通过 Collections API 引入的。当时出现了iterator 方法。然而,Iterable interface 直到 Java 1.5 才引入。 Collection 显式定义iterator 的原因是因为它早于Iterable。 Collection 返回 Iterator 的想法早于 Iterable 的想法。
【讨论】:
Collection 扩展新的Iterable 接口时,没有理由将其从Collection 中删除。
Iterator i = myList.iterator()。从接口中删除方法会导致这些程序停止编译。