Summary
Full Transcript
Sesion 26A Curso Certificación Java 17 (Preparándonos para la versión 21) Código: https://github.com/cursosmrugerio/cursoJava17_21 1. Introducción a Streams y Optional - Contextualización desde capítulos anteriores sobre lambdas y colecciones - Streams como envoltorios de colecciones para procesamiento de datos - Introducción al concepto Optional para manejo seguro de valores nulos - Importancia de Optional en la prevención de NullPointerException - Métodos de Stream que retornan Optional como mecanismo de seguridad 2. Trabajando con Optional - Creación y manejo de Optional para tipos primitivos y objetos - Implementación de métodos que retornan Optional en lugar de null - Técnicas seguras para extraer valores de Optional (isPresent, orElse) - Manejo de excepciones personalizadas con Optional - Uso de Optional a nivel de atributos de clase y métodos - Prevención de NoSuchElementException al usar get() 3. Profundización en Streams - Operaciones fundamentales: creación, intermedias y terminales - Concepto de streams infinitos y su manejo adecuado - Streams paralelos para procesamiento concurrente - Beneficios del paradigma funcional sobre programación orientada a objetos - Importancia de la terminación adecuada de streams - Limitaciones de uso único de streams 4. Operaciones con Streams - Métodos de creación de streams (empty, of, from collections) - Operaciones intermedias como filter y map - Operaciones terminales y sus diferentes tipos de retorno - Uso de forEach para iteración y procesamiento - Búsqueda de elementos con findAny y findFirst - Manejo de comparadores para encontrar mínimos y máximos 5. Aspectos Avanzados - Integración de streams con lambdas y referencias a métodos - Procesamiento paralelo automático sin manejo directo de hilos - Prevención de problemas con streams infinitos - Contratos y comportamiento de operaciones en streams - Uso de predicados para evaluación de condiciones - Combinación de Optional con operaciones de Stream
