Iterator versus Stream de Java 8
Para aprovechar la amplia gama de métodos de consulta incluidos enjava.util.stream
de Jdk 8 Intenté diseñar modelos de dominio donde los captadores de relación con*
multiplicidad (con cero o más instancias) devuelve unStream<T>
, en lugar de unIterable<T>
oIterator<T>
.
Mi duda es si hay gastos generales adicionales incurridos por elStream<T>
en comparación con elIterator<T>
?
Entonces, ¿hay alguna desventaja de comprometer mi modelo de dominio con unStream<T>
?
O, en cambio, debería devolver siempre unIterator<T>
oIterable<T>
, y deja al usuario final la decisión de elegir si usar una secuencia, o no, convirtiendo ese iterador con elStreamUtils
?
Nota que devolver unCollection
no es una opción válida porque en este caso la mayoría de las relaciones son flojas y de tamaño desconocido.