Collectors je posledná trieda, ktorá rozširuje triedu Object. Poskytuje redukčné operácie, ako je akumulácia prvkov do kolekcií, sumarizácia prvkov podľa rôznych kritérií atď.
Trieda Java Collectors poskytuje rôzne metódy na prácu s prvkami
d žabka
Metódy | Popis |
---|---|
public static Collector averagingDouble (mapovač ToDoubleFunction) | Vracia kolektor, ktorý vytvára aritmetický priemer funkcie s dvojitou hodnotou aplikovanou na vstupné prvky. Ak nie sú prítomné žiadne prvky, výsledok je 0. |
redukcia verejného statického kolektora (T identita, BinaryOperator op) | Vracia Collector, ktorý vykonáva redukciu svojich vstupných prvkov pod špecifikovaným BinaryOperatorom pomocou poskytnutej identity. |
verejný statický kolektor | Vracia Collector, ktorý vykonáva redukciu svojich vstupných prvkov pod špecifikovaným BinaryOperatorom. Výsledok je opísaný ako voliteľný. |
redukcia verejného statického kolektora (identita U, mapovač funkcií, binárny operátor op) | Vracia Collector, ktorý vykonáva redukciu svojich vstupných prvkov pod špecifikovanou mapovacou funkciou a BinaryOperator. Toto je zovšeobecnenie redukcie (Object, BinaryOperator), ktoré umožňuje transformáciu prvkov pred redukciou. |
verejný statický kolektor | Vráti kolektor, ktorý implementuje operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, zoskupí prvky podľa klasifikačnej funkcie a vráti výsledky v mape. |
verejný statický kolektor | Vracia kolektor, ktorý implementuje kaskádovú operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, zoskupí prvky podľa klasifikačnej funkcie a potom vykoná operáciu redukcie hodnôt priradených k danému kľúču pomocou špecifikovaného downstream kolektora. |
verejná statika | Vracia kolektor, ktorý implementuje kaskádovú operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, zoskupí prvky podľa klasifikačnej funkcie a potom vykoná operáciu redukcie hodnôt priradených k danému kľúču pomocou špecifikovaného downstream kolektora. Mapa vytvorená Collectorom je vytvorená pomocou dodanej továrenskej funkcie. |
verejný statický kolektor | Vracia súbežný kolektor implementujúci operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, pričom prvky zoskupuje podľa klasifikačnej funkcie. |
verejný statický kolektor | Vracia súbežný kolektor, ktorý implementuje kaskádovú operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, zoskupí prvky podľa klasifikačnej funkcie a potom vykoná operáciu redukcie hodnôt priradených k danému kľúču pomocou špecifikovaného downstream kolektora. |
verejná statika | Vracia súbežný kolektor, ktorý implementuje kaskádovú operáciu „zoskupiť podľa“ na vstupných prvkoch typu T, zoskupí prvky podľa klasifikačnej funkcie a potom vykoná operáciu redukcie hodnôt priradených k danému kľúču pomocou špecifikovaného downstream kolektora. Súbežná mapa vytvorená Collectorom je vytvorená s dodanou továrenskou funkciou. |
verejný statický kolektor | Vracia kolektor, ktorý rozdeľuje vstupné prvky podľa predikátu a organizuje ich do mapy |
verejný statický kolektor | Vracia kolektor, ktorý rozdeľuje vstupné prvky podľa predikátu, redukuje hodnoty v každom oddiele podľa iného kolektora a organizuje ich do mapy, ktorej hodnoty sú výsledkom redukcie po prúde. |
verejný statický kolektor | Vracia kolektor, ktorý akumuluje prvky do mapy, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejný statický kolektor | Vracia kolektor, ktorý akumuluje prvky do mapy, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejná statika | Vracia kolektor, ktorý akumuluje prvky do mapy, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejný statický kolektor | Vracia súbežný kolektor, ktorý akumuluje prvky do ConcurrentMap, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejný statický kolektor | Vracia súbežný kolektor, ktorý akumuluje prvky do ConcurrentMap, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejná statika | Vracia súbežný kolektor, ktorý akumuluje prvky do ConcurrentMap, ktorej kľúče a hodnoty sú výsledkom aplikácie poskytnutých mapovacích funkcií na vstupné prvky. |
verejný statický kolektor sumarizujúciInt (mapovač ToIntFunction) | Vracia Collector, ktorý aplikuje int-produkčnú mapovaciu funkciu na každý vstupný prvok a vracia súhrnnú štatistiku pre výsledné hodnoty. |
verejný statický kolektor sumarizujúciLong (mapovač ToLongFunction) | Vracia Collector, ktorý aplikuje dlho produkčnú mapovaciu funkciu na každý vstupný prvok a vracia súhrnnú štatistiku pre výsledné hodnoty. |
verejný statický kolektor sumarizujúciDouble (mapovač ToDoubleFunction) | Vracia Collector, ktorý aplikuje dvojitú produkčnú mapovaciu funkciu na každý vstupný prvok a vracia súhrnnú štatistiku pre výsledné hodnoty. |
Java Collectors Príklad: Získavanie údajov ako zoznam
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); } }
Výkon:
[25000.0, 30000.0, 28000.0, 28000.0, 90000.0]
Java Collectors Príklad: Konverzia údajov ako súboru
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); } }
Výkon:
[25000.0, 30000.0, 28000.0, 90000.0]
Java Collectors Príklad: použitie metódy súčtu
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); } }
Výkon:
Sum of prices: 201000.0 Sum of id's: 15
Java Collectors Príklad: Získanie priemernej ceny produktu
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); } }
Výkon:
stredový obrázok v css
Average price is: 40200.0
Java Collectors Príklad: Počítanie prvkov
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); } }
Výkon:
Total elements : 5