Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Recupero delle Metriche di Riepilogo dello Stream con il Metodo summaryStatistics() | Operazioni Terminali Nello Stream API
Stream API

bookRecupero 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

Main.java

copy
1234567891011121314151617181920
package 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

Main.java

copy
1234567891011121314151617181920212223
package 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?

question mark

Quale classe viene utilizzata per raccogliere statistiche sui valori int nello Stream API?

Select the correct answer

question mark

Quale metodo aggiunge un valore a un oggetto IntSummaryStatistics?

Select the correct answer

question mark

Quale metodo unisce due oggetti IntSummaryStatistics?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 9

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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

bookRecupero 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

Main.java

copy
1234567891011121314151617181920
package 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

Main.java

copy
1234567891011121314151617181920212223
package 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?

question mark

Quale classe viene utilizzata per raccogliere statistiche sui valori int nello Stream API?

Select the correct answer

question mark

Quale metodo aggiunge un valore a un oggetto IntSummaryStatistics?

Select the correct answer

question mark

Quale metodo unisce due oggetti IntSummaryStatistics?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 9
some-alt