logo

Zbiralci Java

Collectors je zadnji razred, ki razširja razred Object. Omogoča redukcijske operacije, kot je kopičenje elementov v zbirke, seštevanje elementov po različnih kriterijih itd.

Razred Java Collectors nudi različne metode za obravnavo elementov

niz java vsebuje
Metode Opis
javni statični zbiralnik averagingDouble(ToDoubleFunction preslikava) Vrne zbiralnik, ki ustvari aritmetično sredino funkcije z dvojno vrednostjo, uporabljeno za vhodne elemente. Če ni elementov, je rezultat 0.
zmanjšanje javnega statičnega zbiralnika (identiteta T, op. BinaryOperator) Vrne Collector, ki izvede redukcijo svojih vhodnih elementov pod določenim BinaryOperator z uporabo podane identitete.
javni statični zbiralnikzmanjšanje (BinaryOperator op) Vrne Collector, ki izvede redukcijo svojih vhodnih elementov pod določenim BinaryOperator. Rezultat je opisan kot neobvezen.
zmanjšanje javnega statičnega zbiralnika (identiteta U, preslikava funkcij, op. BinaryOperator) Vrne Collector, ki izvede redukcijo svojih vhodnih elementov pod določeno funkcijo preslikave in BinaryOperator. To je posplošitev redukcije (Object, BinaryOperator), ki omogoča transformacijo elementov pred redukcijo.
javni statični zbiralnik> groupingBy (klasifikator funkcij) Vrne zbiralnik, ki izvaja operacijo 'združi po' na vhodnih elementih tipa T, grupira elemente glede na klasifikacijsko funkcijo in vrne rezultate v zemljevidu.
javni statični zbiralnikgroupingBy (klasifikator funkcij, zbiralnik navzdol) Vrne zbiralnik, ki izvaja kaskadno operacijo 'združevanje po' na vhodnih elementih tipa T, grupira elemente glede na klasifikacijsko funkcijo in nato izvede operacijo redukcije vrednosti, povezanih z danim ključem, z uporabo podanega spodnjega zbiralnika.
javna statikaZdruževanje zbiralnika po (klasifikator funkcij, mapa dobaviteljaFactory, zbiralnik navzdol) Vrne zbiralnik, ki izvaja kaskadno operacijo 'združevanje po' na vhodnih elementih tipa T, grupira elemente glede na klasifikacijsko funkcijo in nato izvede operacijo redukcije vrednosti, povezanih z danim ključem, z uporabo podanega spodnjega zbiralnika. Zemljevid, ki ga izdela Collector, je ustvarjen s priloženo tovarniško funkcijo.
javni statični zbiralnik> groupingByConcurrent(funkcijski klasifikator) Vrne sočasni zbiralnik, ki izvaja operacijo 'združi po' na vhodnih elementih tipa T in združuje elemente glede na klasifikacijsko funkcijo.
javni statični zbiralnikgroupingByConcurrent (klasifikator funkcij, zbiralnik navzdol) Vrne sočasni zbiralnik, ki izvaja kaskadno operacijo 'združevanje po' na vhodnih elementih tipa T, združuje elemente v skupine glede na klasifikacijsko funkcijo in nato izvaja operacijo redukcije vrednosti, povezanih z danim ključem, z uporabo podanega zbiralnika nižjega toka.
javna statikaZdruževanje zbiralnikov po sočasnih (klasifikator funkcij, mapa dobaviteljaFactory, zbiralnik navzdol) Vrne sočasni zbiralnik, ki izvaja kaskadno operacijo 'združevanje po' na vhodnih elementih tipa T, združuje elemente v skupine glede na klasifikacijsko funkcijo in nato izvaja operacijo redukcije vrednosti, povezanih z danim ključem, z uporabo podanega zbiralnika nižjega toka. ConcurrentMap, ki ga izdela Collector, je ustvarjen s priloženo tovarniško funkcijo.
javni statični zbiralnik> partitioningBy(Predikat predikat) Vrne zbiralnik, ki razdeli vhodne elemente glede na predikat in jih organizira v zemljevid . Ni jamstev glede vrste, spremenljivosti, serializabilnosti ali varnosti niti vrnjenega zemljevida.
javni statični zbiralnikpartitioningBy(predikat predikat, zbiralnik navzdol) Vrne zbiralnik, ki razdeli vhodne elemente glede na predikat, zmanjša vrednosti v vsaki particiji glede na drug zbiralnik in jih organizira v zemljevid, katerega vrednosti so rezultat znižanja navzdol.
javni statični zbiralniktoMap(Function keyMapper, Function valueMapper) Vrne zbiralnik, ki kopiči elemente v zemljevid, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javni statični zbiralniktoMap ( Function keyMapper , Function valueMapper , BinaryOperator mergeFunction ) . Vrne zbiralnik, ki kopiči elemente v zemljevid, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javna statikaCollector toMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Vrne zbiralnik, ki kopiči elemente v zemljevid, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javni statični zbiralniktoConcurrentMap(Function keyMapper, Function valueMapper) Vrne sočasni zbiralnik, ki kopiči elemente v ConcurrentMap, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javni statični zbiralniktoConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) Vrne sočasni zbiralnik, ki kopiči elemente v ConcurrentMap, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javna statikaCollector toConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Vrne sočasni zbiralnik, ki kopiči elemente v ConcurrentMap, katerega ključi in vrednosti so rezultat uporabe navedenih funkcij preslikave za vhodne elemente.
javni statični zbiralnik summarizingInt(ToIntFunction preslikava) Vrne zbiralnik, ki za vsak vhodni element uporabi funkcijo preslikave, ki proizvaja int, in vrne statistiko povzetka za nastale vrednosti.
javni statični zbiralnik summarizingLong(ToLongFunction preslikava) Vrne zbiralnik, ki za vsak vhodni element uporabi dolgoročno funkcijo preslikave in vrne povzetek statistike za nastale vrednosti.
javni statični zbiralnik summarizingDouble(ToDoubleFunction preslikava) Vrne zbiralnik, ki za vsak vhodni element uporabi dvojno proizvajajočo funkcijo preslikave in vrne povzetek statistike za nastale vrednosti.

Primer zbiralcev Java: pridobivanje podatkov kot seznama

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

Izhod:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Primer zbiralcev Java: pretvorba podatkov kot niza

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

Izhod:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Primer zbiralcev Java: uporaba metode vsote

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

Izhod:

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

Primer zbiralcev Java: pridobivanje povprečne cene izdelka

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

Izhod:

 Average price is: 40200.0 

Primer zbiralcev Java: štetje elementov

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

Izhod:

 Total elements : 5