С C # я полюбил интерфейс IEnumerable
. Есть много случаев, когда это все, что вы хотите отдать и принять. Кроме того, это полезно в библиотеке .Net. Например, у вас есть конструктор в классе List
, который принимает IEnumerable
.
Сейчас мне нужно работать с Java, и я, естественно, хотел использовать эквивалентный интерфейс Iterable
. Однако на самом деле не похоже, что я могу использовать его где-нибудь. Кажется, что все вместо этого использует расширенный интерфейс Collection
. Почему это?
В качестве примера у вас есть конструктор ArrayList
, который принимает Collection
:
Создает список, содержащий элементы указанной коллекции, в порядок, в котором они возвращаются коллекцией ' s итератор.
Почему бы просто не взять вместо этого Iterable
?