logo

Col·leccionistes de Java

Collectors és una classe final que amplia la classe Object. Proporciona operacions de reducció, com ara acumular elements en col·leccions, resumir elements segons diversos criteris, etc.

La classe Java Collectors ofereix diversos mètodes per tractar els elements

Mètodes Descripció
Mitjana de col·lectors estàtic públicDouble (mapeador de funcions ToDouble) Retorna un Col·lector que produeix la mitjana aritmètica d'una funció de valor doble aplicada als elements d'entrada. Si no hi ha cap element, el resultat és 0.
Reducció del col·lector estàtic públic (identitat T, operació BinaryOperator) Retorna un Col·lector que realitza una reducció dels seus elements d'entrada sota un BinaryOperator especificat utilitzant la identitat proporcionada.
col·lector públic estàticreducció (operador binari) Retorna un Col·lector que realitza una reducció dels seus elements d'entrada sota un BinaryOperator especificat. El resultat es descriu com a Opcional.
Reducció de col·lectors estàtic públic (identitat U, mapeador de funcions, operació binària) Retorna un Col·lector que realitza una reducció dels seus elements d'entrada sota una funció de mapatge especificada i un Operador Binari. Aquesta és una generalització de la reducció (Objecte, BinaryOperator) que permet una transformació dels elements abans de la reducció.
col·lector públic estàtic> groupingBy (classificador de funcions) Retorna un Col·lector que implementa una operació 'agrupa per' en elements d'entrada de tipus T, agrupa elements segons una funció de classificació i retorna els resultats en un mapa.
col·lector públic estàticgroupingBy (classificador de funcions, col·lector aigües avall) Retorna un Col·lector que implementa una operació 'agrupa per' en cascada en elements d'entrada de tipus T, agrupa elements segons una funció de classificació i, després, realitza una operació de reducció dels valors associats a una clau determinada utilitzant el Col·lector aigües avall especificat.
estàtica públicaAgrupació de col·lectorsBy (classificador de funcions, mapa de proveïdors de fàbrica, col·lector aigües avall) Retorna un Col·lector que implementa una operació 'agrupa per' en cascada en elements d'entrada de tipus T, agrupa elements segons una funció de classificació i, després, realitza una operació de reducció dels valors associats a una clau determinada utilitzant el Col·lector aigües avall especificat. El Mapa produït pel Col·leccionista es crea amb la funció de fàbrica subministrada.
col·lector públic estàtic> groupingByConcurrent(classificador de funcions) Retorna un Col·lector concurrent que implementa una operació 'agrupa per' en elements d'entrada de tipus T, agrupant elements segons una funció de classificació.
col·lector públic estàticgroupingByConcurrent (classificador de funcions, col·lector aigües avall) Retorna un col·lector concurrent que implementa una operació 'agrupa per' en cascada en elements d'entrada de tipus T, agrupa elements segons una funció de classificació i, a continuació, realitza una operació de reducció dels valors associats a una clau determinada mitjançant el col·lector aigües avall especificat.
estàtica públicaAgrupació de col·lectorsByConcurrent (classificador de funcions, mapa de proveïdors de fàbrica, col·lector aigües avall) Retorna un col·lector concurrent que implementa una operació 'agrupa per' en cascada en elements d'entrada de tipus T, agrupa elements segons una funció de classificació i, a continuació, realitza una operació de reducció dels valors associats a una clau determinada mitjançant el col·lector aigües avall especificat. El ConcurrentMap produït pel Collector es crea amb la funció de fàbrica subministrada.
col·lector públic estàtic> partitioningBy (predicat del predicat) Retorna un col·lector que divideix els elements d'entrada segons un predicat i els organitza en un mapa . No hi ha garanties sobre el tipus, la mutabilitat, la serialització o la seguretat dels fils del mapa retornat.
Col·lector públic estàticpartitioningBy (predicat de predicat, col·lector aigües avall) Retorna un col·lector que divideix els elements d'entrada segons un predicat, redueix els valors de cada partició segons un altre col·lector i els organitza en un mapa els valors del qual són el resultat de la reducció aigües avall.
col·lector públic estàtictoMap(Function keyMapper, Function valueMapper) Retorna un col·lector que acumula elements en un mapa les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
col·lector públic estàtictoMap ( Function keyMapper , Function valueMapper , BinaryOperator mergeFunction ) . Retorna un col·lector que acumula elements en un mapa les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
estàtica públicaCol·lector aMap (Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Retorna un col·lector que acumula elements en un mapa les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
Col·lector públic estàtictoConcurrentMap(Function keyMapper, Function valueMapper) Retorna un col·lector concurrent que acumula elements en un mapa concurrent les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
col·lector públic estàtictoConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) Retorna un col·lector concurrent que acumula elements en un mapa concurrent les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
estàtica públicaCol·lector toConcurrentMap (Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Retorna un col·lector concurrent que acumula elements en un mapa concurrent les claus i valors del qual són el resultat d'aplicar les funcions de mapatge proporcionades als elements d'entrada.
Col·leccionista estàtic públic summarizingInt(ToIntFunction mapper) Retorna un Col·lector que aplica una funció de mapeig que produeix int a cada element d'entrada i retorna estadístiques de resum dels valors resultants.
Col·leccionista estàtic públic summarizingLong(ToLongFunction mapper) Retorna un Col·lector que aplica una funció de mapeig de llarga producció a cada element d'entrada i retorna estadístiques de resum dels valors resultants.
Public static Collector summarizingDouble(ToDoubleFunction mapper) Retorna un Col·lector que aplica una funció de mapeig de producció doble a cada element d'entrada i retorna estadístiques de resum dels valors resultants.

Exemple de col·leccionistes de Java: obtenció de dades com a llista

 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); } } 

Sortida:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Exemple de col·leccionistes de Java: conversió de dades com a conjunt

 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); } } 

Sortida:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Exemple de col·leccionistes de Java: utilitzant el mètode suma

 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); } } 

Sortida:

cadenes de concatenació java
 Sum of prices: 201000.0 Sum of id's: 15 

Exemple de col·leccionistes de Java: obtenir el preu mitjà del producte

 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); } } 

Sortida:

 Average price is: 40200.0 

Exemple de col·leccionistes de Java: comptar elements

 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); } } 

Sortida:

 Total elements : 5