Récupération des Métriques Récapitulatives du Flux avec la Méthode summaryStatistics()
Lors du traitement de données, il est souvent nécessaire de calculer des mesures statistiques telles que la somme, la moyenne, le minimum, le maximum et le nombre d’éléments.
Vous avez déjà appris à trouver les valeurs minimale et maximale dans un flux, mais il existe une méthode qui regroupe toutes ces statistiques en une seule opération. L’API Stream de Java propose une méthode dédiée appelée summaryStatistics(), qui simplifie l’obtention des statistiques globales à partir de flux numériques.
Méthode summaryStatistics()
L’API Stream propose également des flux numériques spécialisés : IntStream, LongStream et DoubleStream. Ceux-ci fonctionnent comme des flux classiques mais sont optimisés pour des types primitifs spécifiques.
Chacun de ces flux numériques inclut une méthode summaryStatistics(), qui retourne une instance de IntSummaryStatistics, LongSummaryStatistics ou DoubleSummaryStatistics, respectivement. Ces objets contiennent les principales mesures statistiques, telles que le nombre d’éléments, la somme, le minimum, le maximum et la moyenne.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
En appelant summaryStatistics() sur un flux numérique, il est possible de collecter et d'analyser rapidement des données statistiques concernant ses valeurs.
Méthodes principales
En Java, les classes IntSummaryStatistics, LongSummaryStatistics et DoubleSummaryStatistics sont utilisées pour collecter des statistiques sur des données numériques. Elles fournissent un ensemble de méthodes permettant d'extraire des indicateurs statistiques clés.
Exemple pratique
Dans une boutique en ligne, il est nécessaire d'analyser les prix des produits afin de déterminer le prix minimum et le prix maximum, le prix moyen ainsi que le nombre total d'articles.
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()); } }
Dans ce code, une liste de prix de produits est créée et convertie en un flux numérique. La méthode Collectors.summarizingInt(Integer::intValue) collecte des données statistiques et les stocke dans un objet IntSummaryStatistics. Les méthodes getMin(), getMax(), getAverage(), getCount() et getSum() permettent ensuite d'extraire les valeurs nécessaires.
Méthodes supplémentaires
La méthode combine() fusionne deux objets statistiques. Ceci est utile lors du traitement de données dans plusieurs threads ou lors de la consolidation de statistiques provenant de différentes sources.
La méthode accept() ajoute manuellement des valeurs à un objet statistique, ce qui est utile pour mettre à jour dynamiquement les données.
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()); } }
Dans cet exemple, deux objets IntSummaryStatistics sont créés, chacun contenant des valeurs ajoutées à l'aide de la méthode accept(). La méthode combine() fusionne ensuite les statistiques des deux objets, en mettant à jour le nombre total, la somme et les valeurs min/max.
En conséquence, stats1 contient désormais les statistiques combinées pour tous les nombres, qui sont ensuite affichées dans la console.
1. Quelle classe est utilisée pour collecter des statistiques sur les valeurs int dans l'API Stream ?
2. Quelle méthode ajoute une valeur à un objet IntSummaryStatistics ?
3. Quelle méthode fusionne deux objets IntSummaryStatistics ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
Récupération des Métriques Récapitulatives du Flux avec la Méthode summaryStatistics()
Glissez pour afficher le menu
Lors du traitement de données, il est souvent nécessaire de calculer des mesures statistiques telles que la somme, la moyenne, le minimum, le maximum et le nombre d’éléments.
Vous avez déjà appris à trouver les valeurs minimale et maximale dans un flux, mais il existe une méthode qui regroupe toutes ces statistiques en une seule opération. L’API Stream de Java propose une méthode dédiée appelée summaryStatistics(), qui simplifie l’obtention des statistiques globales à partir de flux numériques.
Méthode summaryStatistics()
L’API Stream propose également des flux numériques spécialisés : IntStream, LongStream et DoubleStream. Ceux-ci fonctionnent comme des flux classiques mais sont optimisés pour des types primitifs spécifiques.
Chacun de ces flux numériques inclut une méthode summaryStatistics(), qui retourne une instance de IntSummaryStatistics, LongSummaryStatistics ou DoubleSummaryStatistics, respectivement. Ces objets contiennent les principales mesures statistiques, telles que le nombre d’éléments, la somme, le minimum, le maximum et la moyenne.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
En appelant summaryStatistics() sur un flux numérique, il est possible de collecter et d'analyser rapidement des données statistiques concernant ses valeurs.
Méthodes principales
En Java, les classes IntSummaryStatistics, LongSummaryStatistics et DoubleSummaryStatistics sont utilisées pour collecter des statistiques sur des données numériques. Elles fournissent un ensemble de méthodes permettant d'extraire des indicateurs statistiques clés.
Exemple pratique
Dans une boutique en ligne, il est nécessaire d'analyser les prix des produits afin de déterminer le prix minimum et le prix maximum, le prix moyen ainsi que le nombre total d'articles.
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()); } }
Dans ce code, une liste de prix de produits est créée et convertie en un flux numérique. La méthode Collectors.summarizingInt(Integer::intValue) collecte des données statistiques et les stocke dans un objet IntSummaryStatistics. Les méthodes getMin(), getMax(), getAverage(), getCount() et getSum() permettent ensuite d'extraire les valeurs nécessaires.
Méthodes supplémentaires
La méthode combine() fusionne deux objets statistiques. Ceci est utile lors du traitement de données dans plusieurs threads ou lors de la consolidation de statistiques provenant de différentes sources.
La méthode accept() ajoute manuellement des valeurs à un objet statistique, ce qui est utile pour mettre à jour dynamiquement les données.
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()); } }
Dans cet exemple, deux objets IntSummaryStatistics sont créés, chacun contenant des valeurs ajoutées à l'aide de la méthode accept(). La méthode combine() fusionne ensuite les statistiques des deux objets, en mettant à jour le nombre total, la somme et les valeurs min/max.
En conséquence, stats1 contient désormais les statistiques combinées pour tous les nombres, qui sont ensuite affichées dans la console.
1. Quelle classe est utilisée pour collecter des statistiques sur les valeurs int dans l'API Stream ?
2. Quelle méthode ajoute une valeur à un objet IntSummaryStatistics ?
3. Quelle méthode fusionne deux objets IntSummaryStatistics ?
Merci pour vos commentaires !