使用 C#,我开始喜欢它的IEnumerable<T>
界面。在很多情况下,这就是您想要放弃和接受的全部内容。此外,它在 .Net 库中也很有用。例如,您在List<T>
类上有一个构造函数,该构造函数采用IEnumerable<T>
.
我现在必须使用Java,我自然想使用等效的Iterable<T>
接口。但是,我似乎无法在任何地方使用它。一切似乎都在使用扩展Collection<T>
接口。为什么是这样?
例如,您有一个ArrayList<T>
构造函数,它采用Collection<T>
:
按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。
为什么不直接取一个Iterable<T>
呢?