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