Recuperación de Métricas de Resumen de Flujo con el Método summaryStatistics()
Al procesar datos, a menudo es necesario calcular métricas estadísticas como suma, promedio, mínimo, máximo y conteo de elementos.
Ya has aprendido cómo encontrar los valores mínimo y máximo en un stream, pero existe un método que recopila todas estas estadísticas a la vez. La API Stream de Java proporciona un método específico llamado summaryStatistics(), que simplifica la obtención de estadísticas generales de streams numéricos.
Método summaryStatistics()
La API Stream también ofrece streams numéricos especializados: IntStream, LongStream y DoubleStream. Estos funcionan igual que los streams regulares, pero están optimizados para tipos primitivos específicos.
Cada uno de estos streams numéricos incluye un método summaryStatistics(), que devuelve una instancia de IntSummaryStatistics, LongSummaryStatistics o DoubleSummaryStatistics, respectivamente. Estos objetos contienen métricas estadísticas clave, como conteo, suma, mínimo, máximo y promedio.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Al invocar summaryStatistics() en un stream numérico, es posible recopilar y analizar rápidamente datos estadísticos sobre sus valores.
Métodos clave
En Java, las clases IntSummaryStatistics, LongSummaryStatistics y DoubleSummaryStatistics se utilizan para recopilar estadísticas sobre datos numéricos. Proporcionan un conjunto de métodos para extraer métricas estadísticas clave.
Ejemplo práctico
En una tienda en línea, es necesario analizar los precios de los productos para determinar el precio mínimo y máximo, el precio promedio y el número total de artículos.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
En este código, se crea una lista de precios de productos y se convierte en un stream numérico. El método Collectors.summarizingInt(Integer::intValue) recopila datos estadísticos y los almacena en un objeto IntSummaryStatistics. Luego, se utilizan los métodos getMin(), getMax(), getAverage(), getCount() y getSum() para extraer los valores necesarios.
Métodos adicionales
El método combine() fusiona dos objetos de estadísticas. Esto es útil al procesar datos en varios hilos o al consolidar estadísticas de diferentes fuentes.
El método accept() agrega manualmente valores a un objeto de estadísticas, lo cual es útil para actualizar datos de forma dinámica.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
En este ejemplo, se crean dos objetos IntSummaryStatistics, cada uno con valores añadidos mediante el método accept(). El método combine() luego fusiona las estadísticas de ambos objetos, actualizando el conteo total, la suma y los valores mínimo/máximo.
Como resultado, stats1 ahora contiene las estadísticas combinadas de todos los números, que luego se imprimen en la consola.
1. ¿Qué clase se utiliza para recopilar estadísticas de valores int en la Stream API?
2. ¿Qué método agrega un valor a un objeto IntSummaryStatistics?
3. ¿Qué método combina dos objetos IntSummaryStatistics?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
What is the difference between summaryStatistics() and using individual methods like min() or max()?
Can you explain how to use summaryStatistics() with DoubleStream or LongStream?
How does the combine() method work in parallel processing scenarios?
Awesome!
Completion rate improved to 2.33
Recuperación de Métricas de Resumen de Flujo con el Método summaryStatistics()
Desliza para mostrar el menú
Al procesar datos, a menudo es necesario calcular métricas estadísticas como suma, promedio, mínimo, máximo y conteo de elementos.
Ya has aprendido cómo encontrar los valores mínimo y máximo en un stream, pero existe un método que recopila todas estas estadísticas a la vez. La API Stream de Java proporciona un método específico llamado summaryStatistics(), que simplifica la obtención de estadísticas generales de streams numéricos.
Método summaryStatistics()
La API Stream también ofrece streams numéricos especializados: IntStream, LongStream y DoubleStream. Estos funcionan igual que los streams regulares, pero están optimizados para tipos primitivos específicos.
Cada uno de estos streams numéricos incluye un método summaryStatistics(), que devuelve una instancia de IntSummaryStatistics, LongSummaryStatistics o DoubleSummaryStatistics, respectivamente. Estos objetos contienen métricas estadísticas clave, como conteo, suma, mínimo, máximo y promedio.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Al invocar summaryStatistics() en un stream numérico, es posible recopilar y analizar rápidamente datos estadísticos sobre sus valores.
Métodos clave
En Java, las clases IntSummaryStatistics, LongSummaryStatistics y DoubleSummaryStatistics se utilizan para recopilar estadísticas sobre datos numéricos. Proporcionan un conjunto de métodos para extraer métricas estadísticas clave.
Ejemplo práctico
En una tienda en línea, es necesario analizar los precios de los productos para determinar el precio mínimo y máximo, el precio promedio y el número total de artículos.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
En este código, se crea una lista de precios de productos y se convierte en un stream numérico. El método Collectors.summarizingInt(Integer::intValue) recopila datos estadísticos y los almacena en un objeto IntSummaryStatistics. Luego, se utilizan los métodos getMin(), getMax(), getAverage(), getCount() y getSum() para extraer los valores necesarios.
Métodos adicionales
El método combine() fusiona dos objetos de estadísticas. Esto es útil al procesar datos en varios hilos o al consolidar estadísticas de diferentes fuentes.
El método accept() agrega manualmente valores a un objeto de estadísticas, lo cual es útil para actualizar datos de forma dinámica.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
En este ejemplo, se crean dos objetos IntSummaryStatistics, cada uno con valores añadidos mediante el método accept(). El método combine() luego fusiona las estadísticas de ambos objetos, actualizando el conteo total, la suma y los valores mínimo/máximo.
Como resultado, stats1 ahora contiene las estadísticas combinadas de todos los números, que luego se imprimen en la consola.
1. ¿Qué clase se utiliza para recopilar estadísticas de valores int en la Stream API?
2. ¿Qué método agrega un valor a un objeto IntSummaryStatistics?
3. ¿Qué método combina dos objetos IntSummaryStatistics?
¡Gracias por tus comentarios!