filter y map en Java
Transformar colecciones sin escribir un bucle.
import java.util.List;
var numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
var evens = numbers.stream().filter(n -> n % 2 == 0).toList();
System.out.println(evens);
var squares = numbers.stream().map(n -> n * n).limit(4).toList();
System.out.println(squares);
// los streams son perezosos: nada corre sin que una operación terminal lo pida
var firstBig = numbers.stream().map(n -> n * n)
.filter(sq -> sq > 20).findFirst();
System.out.println(firstBig.orElse(-1));
Cómo funciona
filterconserva lo que el predicado acepta;maptransforma.toListmaterializa;limitse detiene temprano.- Los streams son perezosos:
findFirstse detiene en la primera coincidencia.
Palabras clave y builtins usados aquí
var
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 470
- Tokens
- 152
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 101 segundos.
Paso 1 de 3 en Streams; paso 22 de 29 en Fundamentos del lenguaje.