Operaciones de rango y agregación
range, sum, average, summaryStatistics
Operaciones de rango y agregación es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.
Generación de rangos
IntStream.range(start, end) produce enteros consecutivos desde start hasta end, sin incluir este último.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntStream.range(0, 5).forEach(System.out::println);
}
}rangeClosed incluye el final
IntStream.rangeClosed(start, end) incluye el valor final, por lo que rangeClosed(1, 5) produce los valores del 1 al 5.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sum = IntStream.rangeClosed(1, 5).sum();
System.out.println(sum);
}
}Sustitución de bucles basados en índices
Los rangos son una alternativa clara a los bucles for basados en índices cuando se recorren las posiciones de un array.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
String[] names = {"a", "b", "c"};
IntStream.range(0, names.length)
.forEach(i -> System.out.println(i + ": " + names[i]));
}
}sum
sum suma todos los elementos y devuelve un resultado primitivo.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int total = IntStream.rangeClosed(1, 100).sum();
System.out.println(total);
}
}average
average devuelve un OptionalDouble porque el stream podría estar vacío.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
double avg = IntStream.of(2, 4, 6, 8).average().getAsDouble();
System.out.println(avg);
}
}min y max
min y max devuelven OptionalInt. Use getAsInt cuando sepa que el stream no está vacío.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int hi = IntStream.of(3, 9, 1, 7).max().getAsInt();
int lo = IntStream.of(3, 9, 1, 7).min().getAsInt();
System.out.println(lo + " .. " + hi);
}
}count
count devuelve el número de elementos como un long.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
long n = IntStream.rangeClosed(1, 50).filter(x -> x % 3 == 0).count();
System.out.println(n);
}
}summaryStatistics
summaryStatistics calcula count, sum, min, average y max en una sola pasada y devuelve un IntSummaryStatistics.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics stats = IntStream.of(5, 10, 15, 20).summaryStatistics();
System.out.println(stats);
}
}Lectura de estadísticas individuales
El objeto de resumen expone getCount, getSum, getMin, getMax y getAverage.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics s = IntStream.rangeClosed(1, 10).summaryStatistics();
System.out.println("count=" + s.getCount());
System.out.println("avg=" + s.getAverage());
System.out.println("max=" + s.getMax());
}
}Combinación de rango y agregado
Los rangos y los agregados se combinan de forma natural: genere datos, transfórmelos y redúzcalos después a un único número.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sumOfSquares = IntStream.rangeClosed(1, 4)
.map(n -> n * n)
.sum();
System.out.println(sumOfSquares);
}
}Agregados de LongStream
LongStream ofrece los mismos métodos de rango y agregado, y devuelve un LongSummaryStatistics.
import java.util.stream.LongStream;
public class Main {
public static void main(String[] args) {
long sum = LongStream.rangeClosed(1, 1000).sum();
System.out.println(sum);
}
}Comprobación rápida
¿En qué se diferencian range y rangeClosed?
Resumen
Generó y resumió rangos primitivos:
rangeexcluye el final;rangeClosedlo incluye.- Agregados:
sum,average(OptionalDouble),min/max(OptionalInt) ycount. summaryStatisticslos calcula todos en una sola pasada.
Preguntas frecuentes
¿La lección «Operaciones de rango y agregación» es gratis?
Sí — el texto completo de «Operaciones de rango y agregación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Operaciones de rango y agregación»?
range, sum, average, summaryStatistics Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Operaciones de rango y agregación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- IntStream y LongStream
- Operaciones de rango y agregación
- Mapeo hacia y desde streams de objetos
- Generación de streams de tipos primitivos