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àtic | 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 | 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àtic | 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ública | 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 | 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àtic | 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ública | 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 | Retorna un col·lector que divideix els elements d'entrada segons un predicat i els organitza en un mapa |
Col·lector públic estàtic | 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àtic | 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àtic | 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ública | 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àtic | 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àtic | 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ública | 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