Streams numéricos en Java
IntStream hace la matemática sin el boxing.
import java.util.stream.IntStream;
// summaryStatistics responde cuatro preguntas en una sola pasada
var stats = IntStream.of(3, 8, 2, 9, 4).summaryStatistics();
System.out.println("sum " + stats.getSum());
System.out.println("avg " + stats.getAverage());
System.out.println("max " + stats.getMax());
// reduce pliega de izquierda a derecha a través de un acumulador
var product = IntStream.rangeClosed(1, 5).reduce(1, (a, b) -> a * b);
System.out.println("5! = " + product);
System.out.println(IntStream.range(0, 5).boxed().toList());
Cómo funciona
summaryStatisticsresponde suma, promedio y máximo en una pasada.reducees el pliegue general: una semilla y combinar de izquierda a derecha.boxedregresa a objetos cuando la meta es una List.
Palabras clave y builtins usados aquí
var
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 538
- Tokens
- 143
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 95 segundos.
Paso 3 de 3 en Streams; paso 24 de 29 en Fundamentos del lenguaje.