A Collectors egy utolsó osztály, amely kiterjeszti az Object osztályt. Olyan redukciós műveleteket biztosít, mint az elemek gyűjteménybe gyűjtése, az elemek összegzése különböző szempontok szerint stb.
A Java Collectors osztály különféle módszereket kínál az elemek kezelésére
Mód | Leírás |
---|---|
nyilvános statikus gyűjtőátlagolásDouble (ToDoubleFunction leképező) | Egy gyűjtőt ad vissza, amely a bemeneti elemekre alkalmazott kettős értékű függvény számtani átlagát állítja elő. Ha nincsenek jelen elemek, az eredmény 0. |
nyilvános statikus gyűjtőcsökkentés (T azonosság, BinaryOperator op) | Egy gyűjtőt ad vissza, amely végrehajtja a bemeneti elemeinek redukcióját egy megadott BinaryOperator alatt a megadott identitás használatával. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely egy meghatározott BinaryOperator alatt redukálja a bemeneti elemeit. Az eredmény opcionálisként van leírva. |
nyilvános statikus gyűjtőcsökkentés (U-azonosság, függvényleképező, BinaryOperator op) | Egy Collector-t ad vissza, amely végrehajtja a bemeneti elemeinek redukcióját egy meghatározott leképezési függvény és BinaryOperator alatt. Ez a redukció (Object, BinaryOperator) általánosítása, amely lehetővé teszi az elemek átalakítását a redukció előtt. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely egy 'csoportosítás szerint' műveletet valósít meg a T típusú bemeneti elemeken, csoportosítja az elemeket egy osztályozási függvény szerint, és az eredményeket egy Térképben adja vissza. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely lépcsőzetes 'csoportosítás szerint' műveletet hajt végre T típusú bemeneti elemeken, csoportosítja az elemeket egy osztályozási függvény szerint, majd redukciós műveletet hajt végre az adott kulcshoz tartozó értékeken a megadott downstream Collector segítségével. |
nyilvános statikus | Egy gyűjtőt ad vissza, amely lépcsőzetes 'csoportosítás szerint' műveletet hajt végre T típusú bemeneti elemeken, csoportosítja az elemeket egy osztályozási függvény szerint, majd redukciós műveletet hajt végre az adott kulcshoz tartozó értékeken a megadott downstream Collector segítségével. A Collector által készített térkép a mellékelt gyári funkcióval készül. |
nyilvános statikus gyűjtő | Egy párhuzamos gyűjtőt ad vissza, amely egy 'csoportosítás szerint' műveletet valósít meg T típusú bemeneti elemeken, csoportosítva az elemeket egy osztályozási függvény szerint. |
nyilvános statikus gyűjtő | Egy párhuzamos gyűjtőt ad vissza, amely lépcsőzetes 'csoportosítás szerint' műveletet hajt végre a T típusú bemeneti elemeken, csoportosítja az elemeket egy osztályozási függvény szerint, majd redukciós műveletet hajt végre az adott kulcshoz társított értékeken a megadott downstream Collector segítségével. |
nyilvános statikus | Egy párhuzamos gyűjtőt ad vissza, amely lépcsőzetes 'csoportosítás szerint' műveletet hajt végre a T típusú bemeneti elemeken, csoportosítja az elemeket egy osztályozási függvény szerint, majd redukciós műveletet hajt végre az adott kulcshoz társított értékeken a megadott downstream Collector segítségével. A Collector által készített ConcurrentMap a mellékelt gyári funkcióval jön létre. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely a bemeneti elemeket predikátum szerint particionálja, és leképezésbe rendezi |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely egy predikátum szerint particionálja a bemeneti elemeket, lecsökkenti az egyes partíciók értékeit egy másik gyűjtő szerint, és egy leképezésbe rendezi, amelynek értékei a downstream redukció eredménye. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely olyan elemeket halmoz fel egy térképbe, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus gyűjtő | Egy gyűjtőt ad vissza, amely olyan elemeket halmoz fel egy térképbe, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus | Egy gyűjtőt ad vissza, amely olyan elemeket halmoz fel egy térképbe, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus gyűjtő | Egy párhuzamos gyűjtőt ad vissza, amely összegyűjti az elemeket egy ConcurrentMap-be, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus gyűjtő | Egy párhuzamos gyűjtőt ad vissza, amely összegyűjti az elemeket egy ConcurrentMap-be, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus | Egy párhuzamos gyűjtőt ad vissza, amely összegyűjti az elemeket egy ConcurrentMap-be, amelynek kulcsai és értékei a megadott leképezési függvények bemeneti elemekre történő alkalmazásának eredménye. |
nyilvános statikus Collector summarisingInt (ToIntFunction leképező) | Egy gyűjtőt ad vissza, amely minden bemeneti elemre egy int-előállító leképezési függvényt alkalmaz, és összefoglaló statisztikákat ad vissza az eredményül kapott értékekről. |
nyilvános statikus Collector summarisingLong (ToLongFunction leképező) | Egy gyűjtőt ad vissza, amely egy hosszú ideig tartó leképezési függvényt alkalmaz minden bemeneti elemre, és összefoglaló statisztikákat ad vissza az eredményül kapott értékekről. |
nyilvános statikus gyűjtő összefoglalóDouble (ToDoubleFunction leképező) | Egy gyűjtőt ad vissza, amely minden bemeneti elemre duplán előállító leképezési függvényt alkalmaz, és összefoglaló statisztikákat ad vissza az eredményül kapott értékekről. |
Java gyűjtők Példa: Adatok lekérése listaként
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); } }
Kimenet:
[25000.0, 30000.0, 28000.0, 28000.0, 90000.0]
Java gyűjtők Példa: Adatok konvertálása készletként
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); } }
Kimenet:
[25000.0, 30000.0, 28000.0, 90000.0]
Java gyűjtők Példa: összeg módszer használata
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); } }
Kimenet:
Sum of prices: 201000.0 Sum of id's: 15
Java gyűjtők Példa: Termékek átlagos ára
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); } }
Kimenet:
Average price is: 40200.0
Java gyűjtők Példa: Elemek számlálása
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); } }
Kimenet:
Total elements : 5