Итератор против потока Java 8

Чтобы воспользоваться широким спектром методов запроса, включенных вjava.util.stream JDK 8 Я пытаюсь разработать доменные модели, где получатели отношений с* кратность (с нулем или более экземпляров) возвращаетStream<T>вместоIterable<T> или жеIterator<T>.

Я сомневаюсь, есть ли какие-либо дополнительные накладные расходы, понесенныеStream<T> по сравнению сIterator<T>?

Итак, есть ли недостаток компрометации моей доменной модели сStream<T>?

Или вместо этого я должен всегда возвращатьIterator<T> или жеIterable<T>и оставьте конечному пользователю решение о том, использовать поток или нет, путем преобразования этого итератора с помощьюStreamUtils?

Заметка что возвращениеCollection не является допустимым вариантом, потому что в этом случае большинство отношений являются ленивыми и с неизвестным размером.

Ответы на вопрос(2)

Ваш ответ на вопрос