Capítulo 7. Trabajar con flujos

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Las secuencias utilizan muchas de las características funcionales introducidas en Java 8 para proporcionar una forma declarativa de procesar datos. La API de secuencias cubre muchos casos de uso, pero necesitas saber cómo funcionan las distintas operaciones y las clases ayudantes disponibles para sacarles el máximo partido.

El capítulo 6 se centró en mostrarte los fundamentos de Streams. Este capítulo se basará en ello y te enseñará distintas formas de crear y trabajar con Streams para diversos casos de uso.

Corrientes primitivas

En Java, los genéricos sólo funcionan con tipos basados en objetos (aún1). Por eso Stream<T> no puede utilizarse para secuencias de valores primitivos como int. Sólo hay dos opciones para utilizar tipos primitivos con Streams:

  • Autoboxing

  • Variantes de corrientes especializadas

El soporte de autoboxing de Java -la conversión automática entre tipos primitivos y sus homólogos basados en objetos como int y Integer-puede parecer una solución sencilla porque funciona automáticamente, como se muestra a continuación:

Stream<Long> longStream = Stream.of(5L, 23L, 42L);

Sin embargo, el autoboxing introduce múltiples problemas. Por un lado, está la sobrecarga asociada a la conversión de valores primitivos a objetos, en comparación con el uso directo de tipos primitivos. Normalmente, la sobrecarga es insignificante. ...

Get Un enfoque funcional de Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.