Recupero delle Metriche di Riepilogo dello Stream con il Metodo summaryStatistics()
Durante l'elaborazione dei dati, è spesso necessario calcolare metriche statistiche come somma, media, valore minimo, valore massimo e conteggio degli elementi.
Hai già appreso come trovare i valori minimo e massimo in uno stream, ma esiste un metodo che raccoglie tutte queste statistiche contemporaneamente. La Java Stream API offre un metodo dedicato chiamato summaryStatistics(), che semplifica il recupero delle statistiche complessive dagli stream numerici.
Metodo summaryStatistics()
La Stream API fornisce anche stream numerici specializzati: IntStream, LongStream e DoubleStream. Questi funzionano come gli stream regolari ma sono ottimizzati per specifici tipi primitivi.
Ognuno di questi stream numerici include un metodo summaryStatistics(), che restituisce un'istanza di IntSummaryStatistics, LongSummaryStatistics o DoubleSummaryStatistics, rispettivamente. Questi oggetti contengono le principali metriche statistiche, come conteggio, somma, minimo, massimo e media.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Chiamando summaryStatistics() su uno stream numerico, è possibile raccogliere e analizzare rapidamente dati statistici sui suoi valori.
Metodi principali
In Java, le classi IntSummaryStatistics, LongSummaryStatistics e DoubleSummaryStatistics vengono utilizzate per raccogliere statistiche su dati numerici. Offrono una serie di metodi per estrarre i principali indicatori statistici.
Esempio pratico
In un negozio online, è necessario analizzare i prezzi dei prodotti per determinare il prezzo minimo e massimo, il prezzo medio e il numero totale di articoli.
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()); } }
In questo codice, viene creata una lista di prezzi dei prodotti e convertita in uno stream numerico. Il metodo Collectors.summarizingInt(Integer::intValue) raccoglie dati statistici e li memorizza in un oggetto IntSummaryStatistics. Successivamente, vengono utilizzati i metodi getMin(), getMax(), getAverage(), getCount() e getSum() per estrarre i valori necessari.
Metodi aggiuntivi
Il metodo combine() unisce due oggetti statistici. Questo è utile durante l'elaborazione di dati in più thread o quando si consolidano statistiche provenienti da diverse fonti.
Il metodo accept() aggiunge manualmente valori a un oggetto statistico, risultando utile per aggiornare dinamicamente i dati.
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()); } }
In questo esempio, vengono creati due oggetti IntSummaryStatistics, ciascuno contenente valori aggiunti tramite il metodo accept(). Il metodo combine() unisce quindi le statistiche di entrambi gli oggetti, aggiornando il conteggio totale, la somma e i valori min/max.
Di conseguenza, stats1 ora contiene le statistiche combinate di tutti i numeri, che vengono poi stampate sulla console.
1. Quale classe viene utilizzata per raccogliere statistiche sui valori int nello Stream API?
2. Quale metodo aggiunge un valore a un oggetto IntSummaryStatistics?
3. Quale metodo unisce due oggetti IntSummaryStatistics?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Recupero delle Metriche di Riepilogo dello Stream con il Metodo summaryStatistics()
Scorri per mostrare il menu
Durante l'elaborazione dei dati, è spesso necessario calcolare metriche statistiche come somma, media, valore minimo, valore massimo e conteggio degli elementi.
Hai già appreso come trovare i valori minimo e massimo in uno stream, ma esiste un metodo che raccoglie tutte queste statistiche contemporaneamente. La Java Stream API offre un metodo dedicato chiamato summaryStatistics(), che semplifica il recupero delle statistiche complessive dagli stream numerici.
Metodo summaryStatistics()
La Stream API fornisce anche stream numerici specializzati: IntStream, LongStream e DoubleStream. Questi funzionano come gli stream regolari ma sono ottimizzati per specifici tipi primitivi.
Ognuno di questi stream numerici include un metodo summaryStatistics(), che restituisce un'istanza di IntSummaryStatistics, LongSummaryStatistics o DoubleSummaryStatistics, rispettivamente. Questi oggetti contengono le principali metriche statistiche, come conteggio, somma, minimo, massimo e media.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Chiamando summaryStatistics() su uno stream numerico, è possibile raccogliere e analizzare rapidamente dati statistici sui suoi valori.
Metodi principali
In Java, le classi IntSummaryStatistics, LongSummaryStatistics e DoubleSummaryStatistics vengono utilizzate per raccogliere statistiche su dati numerici. Offrono una serie di metodi per estrarre i principali indicatori statistici.
Esempio pratico
In un negozio online, è necessario analizzare i prezzi dei prodotti per determinare il prezzo minimo e massimo, il prezzo medio e il numero totale di articoli.
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()); } }
In questo codice, viene creata una lista di prezzi dei prodotti e convertita in uno stream numerico. Il metodo Collectors.summarizingInt(Integer::intValue) raccoglie dati statistici e li memorizza in un oggetto IntSummaryStatistics. Successivamente, vengono utilizzati i metodi getMin(), getMax(), getAverage(), getCount() e getSum() per estrarre i valori necessari.
Metodi aggiuntivi
Il metodo combine() unisce due oggetti statistici. Questo è utile durante l'elaborazione di dati in più thread o quando si consolidano statistiche provenienti da diverse fonti.
Il metodo accept() aggiunge manualmente valori a un oggetto statistico, risultando utile per aggiornare dinamicamente i dati.
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()); } }
In questo esempio, vengono creati due oggetti IntSummaryStatistics, ciascuno contenente valori aggiunti tramite il metodo accept(). Il metodo combine() unisce quindi le statistiche di entrambi gli oggetti, aggiornando il conteggio totale, la somma e i valori min/max.
Di conseguenza, stats1 ora contiene le statistiche combinate di tutti i numeri, che vengono poi stampate sulla console.
1. Quale classe viene utilizzata per raccogliere statistiche sui valori int nello Stream API?
2. Quale metodo aggiunge un valore a un oggetto IntSummaryStatistics?
3. Quale metodo unisce due oggetti IntSummaryStatistics?
Grazie per i tuoi commenti!