Чтобы воспользоваться широким спектром методов запросов, включенных в java.util.stream Jdk 8, я пытаюсь разработать модели домена, где коэффициенты отношения с кратким числом * (с нулем или более экземплярами) возвращают a Stream<T>, вместо Iterable<T> или Iterator<T>.
Мое сомнение в том, что есть дополнительные накладные расходы, понесенные Stream<T> по сравнению с Iterator<T>?
Итак, есть ли какой-либо недостаток компрометации моей модели домена с помощью Stream<T>?
Или вместо этого, должен ли я всегда возвращать Iterator<T> или Iterable<T> и оставлять конечному пользователю решение выбрать, использовать ли поток, или нет, путем преобразования этого итератора с StreamUtils?
Примечание, возвращающее Collection, не является допустимым вариантом, поскольку в этом случае большинство отношений являются ленивыми и неизвестными.