Calcul des Statistiques de Flux avec count(), max() et min()
En programmation, il est souvent nécessaire de compter le nombre d'éléments dans une collection ou de trouver les valeurs minimale et maximale parmi eux.
Cependant, les programmeurs n'écrivent généralement pas d'algorithmes personnalisés pour ces tâches, car des méthodes intégrées existent déjà. L'API Stream fournit des méthodes pratiques pour travailler avec des collections, permettant d'effectuer des calculs sur les éléments du flux.
Parmi ces méthodes figurent count(), max() et min(), qui permettent de déterminer le nombre d'éléments et de trouver les valeurs plus grande et plus petite.
La méthode count()
La méthode count() retourne le nombre d'éléments dans un flux. Elle est souvent utilisée lorsqu'il est nécessaire de déterminer la taille d'une collection après avoir filtré les données.
long count();
Elle ne prend aucun paramètre et retourne un type primitif long.
Exemple pratique
Dans une boutique en ligne, il est nécessaire de compter le nombre de produits avec une remise supérieure à 20 %.
Main.java
123456789101112131415161718192021222324252627282930313233package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }
Dans cet exemple, la méthode filter() sélectionne les produits avec une remise supérieure à 20%, et count() détermine leur quantité.
La méthode max()
La méthode max() retourne l’élément maximal d’un flux selon un Comparator donné. Si le flux est vide, elle retourne Optional.empty().
Optional<T> max(Comparator<? super T> comparator);
Exemple pratique
Identifier le produit le plus cher dans une boutique en ligne afin de le promouvoir comme produit haut de gamme.
Main.java
12345678910111213141516171819202122232425262728293031323334353637383940package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }
Dans ce code, Comparator.comparing(Product::getPrice) compare les produits par prix, et max() sélectionne le plus cher.
La méthode min()
La méthode min() est similaire à max(), mais elle retourne le plus petit élément d'un flux selon un Comparator donné.
Optional<T> min(Comparator<? super T> comparator);
Exemple pratique
Identifier le produit avec le stock le plus faible afin d'évaluer la nécessité d'un réapprovisionnement.
Main.java
12345678910111213141516171819202122232425262728293031323334353637383940package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }
Ce code identifie le produit avec le stock le plus bas en utilisant la méthode min() et Comparator.comparing(Product::getStock).
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
Awesome!
Completion rate improved to 2.33
Calcul des Statistiques de Flux avec count(), max() et min()
Glissez pour afficher le menu
En programmation, il est souvent nécessaire de compter le nombre d'éléments dans une collection ou de trouver les valeurs minimale et maximale parmi eux.
Cependant, les programmeurs n'écrivent généralement pas d'algorithmes personnalisés pour ces tâches, car des méthodes intégrées existent déjà. L'API Stream fournit des méthodes pratiques pour travailler avec des collections, permettant d'effectuer des calculs sur les éléments du flux.
Parmi ces méthodes figurent count(), max() et min(), qui permettent de déterminer le nombre d'éléments et de trouver les valeurs plus grande et plus petite.
La méthode count()
La méthode count() retourne le nombre d'éléments dans un flux. Elle est souvent utilisée lorsqu'il est nécessaire de déterminer la taille d'une collection après avoir filtré les données.
long count();
Elle ne prend aucun paramètre et retourne un type primitif long.
Exemple pratique
Dans une boutique en ligne, il est nécessaire de compter le nombre de produits avec une remise supérieure à 20 %.
Main.java
123456789101112131415161718192021222324252627282930313233package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }
Dans cet exemple, la méthode filter() sélectionne les produits avec une remise supérieure à 20%, et count() détermine leur quantité.
La méthode max()
La méthode max() retourne l’élément maximal d’un flux selon un Comparator donné. Si le flux est vide, elle retourne Optional.empty().
Optional<T> max(Comparator<? super T> comparator);
Exemple pratique
Identifier le produit le plus cher dans une boutique en ligne afin de le promouvoir comme produit haut de gamme.
Main.java
12345678910111213141516171819202122232425262728293031323334353637383940package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }
Dans ce code, Comparator.comparing(Product::getPrice) compare les produits par prix, et max() sélectionne le plus cher.
La méthode min()
La méthode min() est similaire à max(), mais elle retourne le plus petit élément d'un flux selon un Comparator donné.
Optional<T> min(Comparator<? super T> comparator);
Exemple pratique
Identifier le produit avec le stock le plus faible afin d'évaluer la nécessité d'un réapprovisionnement.
Main.java
12345678910111213141516171819202122232425262728293031323334353637383940package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }
Ce code identifie le produit avec le stock le plus bas en utilisant la méthode min() et Comparator.comparing(Product::getStock).
Merci pour vos commentaires !