logo

Collecteurs Java

Collectors est une classe finale qui étend la classe Object. Il permet des opérations de réduction, comme accumuler des éléments dans des collections, résumer des éléments selon divers critères, etc.

La classe Java Collectors fournit diverses méthodes pour gérer les éléments

Méthodes Description
collecteur statique public averagingDouble (mappeur ToDoubleFunction) Il renvoie un collecteur qui produit la moyenne arithmétique d'une fonction à double valeur appliquée aux éléments d'entrée. Si aucun élément n’est présent, le résultat est 0.
Collecteur statique public réduisant (identité T, opération BinaryOperator) Il renvoie un collecteur qui effectue une réduction de ses éléments d'entrée sous un BinaryOperator spécifié en utilisant l'identité fournie.
Collecteur statique publicréduction (opération BinaryOperator) Il renvoie un collecteur qui effectue une réduction de ses éléments d'entrée sous un BinaryOperator spécifié. Le résultat est décrit comme facultatif.
Réduction du collecteur statique public (identité U, mappeur de fonctions, opération BinaryOperator) Il renvoie un collecteur qui effectue une réduction de ses éléments d'entrée sous une fonction de mappage spécifiée et BinaryOperator. Il s'agit d'une généralisation de la réduction(Object, BinaryOperator) qui permet une transformation des éléments avant réduction.
Collecteur statique public> groupingBy (classificateur de fonctions) Il renvoie un collecteur implémentant une opération « regrouper par » sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification et renvoyant les résultats dans une carte.
Collecteur statique publicgroupingBy (classificateur de fonctions, collecteur en aval) Il renvoie un collecteur implémentant une opération « regrouper par » en cascade sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification, puis effectuant une opération de réduction sur les valeurs associées à une clé donnée à l'aide du collecteur en aval spécifié.
public statiqueCollecteur groupingBy (Classificateur de fonction, Fournisseur mapFactory, Collecteur en aval) Il renvoie un collecteur implémentant une opération « regrouper par » en cascade sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification, puis effectuant une opération de réduction sur les valeurs associées à une clé donnée à l'aide du collecteur en aval spécifié. La carte produite par le collecteur est créée avec la fonction d'usine fournie.
Collecteur statique public> groupingByConcurrent (classificateur de fonctions) Il renvoie un collecteur concurrent implémentant une opération « regrouper par » sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification.
Collecteur statique publicgroupingByConcurrent (classificateur de fonctions, collecteur en aval) Il renvoie un collecteur concurrent implémentant une opération « regrouper par » en cascade sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification, puis effectuant une opération de réduction sur les valeurs associées à une clé donnée à l'aide du collecteur en aval spécifié.
public statiqueCollector groupingByConcurrent (Classificateur de fonctions, Fournisseur mapFactory, Collecteur en aval) Il renvoie un collecteur concurrent implémentant une opération « regrouper par » en cascade sur les éléments d'entrée de type T, regroupant les éléments selon une fonction de classification, puis effectuant une opération de réduction sur les valeurs associées à une clé donnée à l'aide du collecteur en aval spécifié. Le ConcurrentMap produit par le collecteur est créé avec la fonction d'usine fournie.
Collecteur statique public> partitioningBy(Prédicat prédicat) Il renvoie un collecteur qui partitionne les éléments d'entrée selon un prédicat et les organise dans une carte. . Il n'y a aucune garantie sur le type, la mutabilité, la sérialisabilité ou la sécurité des threads de la carte renvoyée.
Collecteur statique publicpartitioningBy (Prédicat, Collecteur en aval) Il renvoie un collecteur qui partitionne les éléments d'entrée selon un prédicat, réduit les valeurs de chaque partition selon un autre collecteur et les organise dans une carte dont les valeurs sont le résultat de la réduction en aval.
Collecteur statique publictoMap (Fonction keyMapper, Fonction valueMapper) Il renvoie un collecteur qui accumule des éléments dans une carte dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
Collecteur statique publictoMap (Fonction keyMapper, Fonction valueMapper, BinaryOperator mergeFunction). Il renvoie un collecteur qui accumule des éléments dans une carte dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
public statiqueCollecteur toMap (Fonction keyMapper, Fonction valueMapper, BinaryOperator mergeFunction, Fournisseur mapSupplier) Il renvoie un collecteur qui accumule des éléments dans une carte dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
Collecteur statique publictoConcurrentMap (Fonction keyMapper, Fonction valueMapper) Il renvoie un collecteur concurrent qui accumule des éléments dans un ConcurrentMap dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
Collecteur statique publictoConcurrentMap (Fonction keyMapper, Fonction valueMapper, BinaryOperator mergeFunction) Il renvoie un collecteur concurrent qui accumule des éléments dans un ConcurrentMap dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
public statiqueCollecteur toConcurrentMap (Fonction keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Il renvoie un collecteur concurrent qui accumule des éléments dans un ConcurrentMap dont les clés et les valeurs sont le résultat de l'application des fonctions de mappage fournies aux éléments d'entrée.
Collecteur statique public summarizingInt (mappeur ToIntFunction) Il renvoie un collecteur qui applique une fonction de mappage produisant un int à chaque élément d'entrée et renvoie des statistiques récapitulatives pour les valeurs résultantes.
Collecteur statique public résumantLong (mappeur ToLongFunction) Il renvoie un collecteur qui applique une fonction de mappage de longue durée à chaque élément d'entrée et renvoie des statistiques récapitulatives pour les valeurs résultantes.
Collecteur statique public résumantDouble (mappeur ToDoubleFunction) Il renvoie un collecteur qui applique une fonction de mappage à double production à chaque élément d'entrée et renvoie des statistiques récapitulatives pour les valeurs résultantes.

Exemple de collecteurs Java : récupération de données sous forme de liste

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); List productPriceList = productsList.stream() .map(x->x.price) // fetching price .collect(Collectors.toList()); // collecting as list System.out.println(productPriceList); } } 

Sortir:

acteur de cinéma vijay
 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Exemple de collecteurs Java : conversion de données sous forme d'ensemble

 import java.util.stream.Collectors; import java.util.Set; import java.util.List; import java.util.ArrayList; classProduct{ intid; String name; floatprice; public Product(intid, String name, floatprice) { this.id = id; this.name = name; this.price = price; } } publicclass CollectorsExample { publicstaticvoid main(String[] args) { ListproductsList = new ArrayList(); //Adding Products productsList.add(newProduct(1,'HP Laptop',25000f)); productsList.add(newProduct(2,'Dell Laptop',30000f)); productsList.add(newProduct(3,'Lenevo Laptop',28000f)); productsList.add(newProduct(4,'Sony Laptop',28000f)); productsList.add(newProduct(5,'Apple Laptop',90000f)); SetproductPriceList = productsList.stream() .map(x->x.price) // fetching price .collect(Collectors.toSet()); // collecting as list System.out.println(productPriceList); } } 

Sortir:

mvc avec java
 [25000.0, 30000.0, 28000.0, 90000.0] 

Exemple de collecteurs Java : utilisation de la méthode sum

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Double sumPrices = productsList.stream() .collect(Collectors.summingDouble(x->x.price)); // collecting as list System.out.println('Sum of prices: '+sumPrices); Integer sumId = productsList.stream().collect(Collectors.summingInt(x->x.id)); System.out.println('Sum of id's: '+sumId); } } 

Sortir:

 Sum of prices: 201000.0 Sum of id's: 15 

Exemple de collecteurs Java : obtenir le prix moyen du produit

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class CollectorsExample { public static void main(String[] args) { List productsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Double average = productsList.stream() .collect(Collectors.averagingDouble(p->p.price)); System.out.println('Average price is: '+average); } } 

Sortir:

 Average price is: 40200.0 

Exemple de collecteurs Java : compter les éléments

 import java.util.stream.Collectors; import java.util.List; import java.util.ArrayList; class Product{ intid; String name; floatprice; public Product(intid, String name, floatprice) { this.id = id; this.name = name; this.price = price; } publicint getId() { returnid; } public String getName() { returnname; } publicfloat getPrice() { returnprice; } } publicclass CollectorsExample { publicstaticvoid main(String[] args) { ListproductsList = new ArrayList(); //Adding Products productsList.add(new Product(1,'HP Laptop',25000f)); productsList.add(new Product(2,'Dell Laptop',30000f)); productsList.add(new Product(3,'Lenevo Laptop',28000f)); productsList.add(new Product(4,'Sony Laptop',28000f)); productsList.add(new Product(5,'Apple Laptop',90000f)); Long noOfElements = productsList.stream() .collect(Collectors.counting()); System.out.println('Total elements : '+noOfElements); } } 

Sortir:

 Total elements : 5