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