logo

Java kolekcionāri

Kolekcionāri ir pēdējā klase, kas paplašina objektu klasi. Tas nodrošina samazināšanas darbības, piemēram, elementu uzkrāšanu kolekcijās, elementu apkopošanu pēc dažādiem kritērijiem utt.

Java Collectors klase nodrošina dažādas metodes, kā rīkoties ar elementiem

Metodes Apraksts
publisks statisks savācēju vidējais rādītājsDouble (ToDoubleFunction kartētājs) Tas atgriež savācēju, kas ģenerē ievades elementiem lietotās dubultās vērtības funkcijas vidējo aritmētisko. Ja elementu nav, rezultāts ir 0.
publiska statiskā kolektora samazināšana (T identitāte, BinaryOperator op) Tas atgriež savācēju, kas veic savu ievades elementu samazināšanu noteiktā BinaryOperator, izmantojot norādīto identitāti.
publisks statisks Kolekcionārssamazināšana (BinaryOperator op) Tas atgriež savācēju, kas veic savu ievades elementu samazināšanu noteiktā BinaryOperator. Rezultāts ir aprakstīts kā neobligāts.
publiska statiskā kolektora samazināšana (U identitāte, funkciju kartētājs, binārais operators) Tas atgriež savācēju, kas veic savu ievades elementu samazināšanu saskaņā ar noteiktu kartēšanas funkciju un BinaryOperator. Šis ir reducēšanas (Object, BinaryOperator) vispārinājums, kas ļauj pārveidot elementus pirms samazināšanas.
publisks statisks Kolekcionārs> grupēšana pēc (funkciju klasifikators) Tas atgriež savācēju, kas ievieš operāciju “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai un atgriežot rezultātus kartē.
publisks statisks Kolekcionārsgrupēšana pēc (funkciju klasifikators, savācējs lejup pa straumi) Tas atgriež kolekcionāru, kas ievieš kaskādes darbību “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai un pēc tam veicot samazināšanas darbību vērtībām, kas saistītas ar doto atslēgu, izmantojot norādīto pakārtoto kolektoru.
publiska statiskaKolektoru grupēšana pēc (funkciju klasifikators, piegādātāja karteRūpnīca, savācējs lejup pa straumi) Tas atgriež kolekcionāru, kas ievieš kaskādes darbību “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai un pēc tam veicot samazināšanas darbību vērtībām, kas saistītas ar doto atslēgu, izmantojot norādīto pakārtoto kolektoru. Kolekcionāra izgatavotā karte tiek veidota ar piegādāto rūpnīcas funkciju.
publisks statisks Kolekcionārs> grupēšana pēc vienlaicīgas (funkciju klasifikators) Tas atgriež vienlaicīgu savācēju, kas ievieš operāciju “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai.
publisks statisks KolekcionārsgroupingByConcurrent (funkciju klasifikators, savācējs lejup pa straumi) Tas atgriež vienlaicīgu kolekcionāru, kas ievieš kaskādes darbību “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai un pēc tam veicot samazināšanas darbību vērtībām, kas saistītas ar doto atslēgu, izmantojot norādīto pakārtoto kolektoru.
publiska statiskaKolektoru grupēšana pēc vienlaicīgas (funkciju klasifikators, piegādātāja karteRūpnīca, savācējs lejup pa straumi) Tas atgriež vienlaicīgu kolekcionāru, kas ievieš kaskādes darbību “grupēt pēc” T tipa ievades elementiem, grupējot elementus atbilstoši klasifikācijas funkcijai un pēc tam veicot samazināšanas darbību vērtībām, kas saistītas ar doto atslēgu, izmantojot norādīto pakārtoto kolektoru. Collector ražotā ConcurrentMap tiek izveidota ar piegādāto rūpnīcas funkciju.
publisks statisks Kolekcionārs> partitioningBy (predikāta predikāts) Tas atgriež savācēju, kas sadala ievades elementus saskaņā ar predikātu un sakārto tos kartē . Nav garantiju par atgrieztās kartes veidu, maināmību, serializējamību vai pavedienu drošību.
publisks statisks Kolekcionārssadalīšana pēc (predikāta predikāts, savācējs lejup pa straumi) Tas atgriež savācēju, kas sadala ievades elementus saskaņā ar predikātu, samazina vērtības katrā nodalījumā atbilstoši citam savācējam un sakārto tās kartē, kuras vērtības ir pakārtotā samazinājuma rezultāts.
publisks statisks KolekcionārstoMap (funkciju taustiņu kartētājs, funkcijas vērtības kartētājs) Tas atgriež savācēju, kas uzkrāj elementus kartē, kuras atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot sniegtās kartēšanas funkcijas.
publisks statisks KolekcionārstoMap (Funkciju keyMapper, Function valueMapper, BinaryOperator mergeFunction). Tas atgriež savācēju, kas uzkrāj elementus kartē, kuras atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot sniegtās kartēšanas funkcijas.
publiska statiskaKolekcionārs uz karti (Funkciju atslēgu kartētājs, Funkcijas valueMapper, BinaryOperator mergeFunction, Piegādātāja kartes Piegādātājs) Tas atgriež savācēju, kas uzkrāj elementus kartē, kuras atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot sniegtās kartēšanas funkcijas.
publisks statisks Kolekcionārsto ConcurrentMap (funkciju atslēgu kartētājs, funkcijas vērtības kartētājs) Tas atgriež vienlaicīgu savācēju, kas uzkrāj elementus ConcurrentMap, kura atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot nodrošinātās kartēšanas funkcijas.
publisks statisks Kolekcionārsto ConcurrentMap (Funkciju atslēgu kartētājs, Funkcijas vērtības kartētājs, BinaryOperator mergeFunction) Tas atgriež vienlaicīgu savācēju, kas uzkrāj elementus ConcurrentMap, kura atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot nodrošinātās kartēšanas funkcijas.
publiska statiskaKolekcionārs uz ConcurrentMap (Funkciju atslēgu kartētājs, Funkcijas vērtības kartētājs, BinaryOperator sapludināšanas funkcija, Piegādātāja kartes Piegādātājs) Tas atgriež vienlaicīgu savācēju, kas uzkrāj elementus ConcurrentMap, kura atslēgas un vērtības ir iegūtas, ievades elementiem piemērojot nodrošinātās kartēšanas funkcijas.
publisks statisks Collector summarisingInt (ToIntFunction kartētājs) Tas atgriež savācēju, kas katram ievades elementam piemēro int-rades kartēšanas funkciju, un atgriež iegūto vērtību kopsavilkuma statistiku.
publisks statisks Kolekcionāra apkopojumsLong (ToLongFunction kartētājs) Tas atgriež savācēju, kas katram ievades elementam piemēro ilgstoši veidojošu kartēšanas funkciju, un atgriež iegūto vērtību kopsavilkuma statistiku.
publisks statisks Kolekcionāra apkopojumsDouble (ToDoubleFunction kartētājs) Tas atgriež savācēju, kas katram ievades elementam piemēro dubultas kartēšanas funkciju, un atgriež iegūto vērtību kopsavilkuma statistiku.

Java kolekciju piemērs: datu iegūšana kā saraksts

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

Izvade:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Java kolekciju piemērs: datu konvertēšana kā kopa

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

Izvade:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Java Collectors Piemērs: izmantojot summas metodi

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

Izvade:

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

Java kolekcionāru piemērs: produkta vidējās cenas iegūšana

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

Izvade:

 Average price is: 40200.0 

Java kolekciju piemērs: Elementu skaitīšana

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

Izvade:

ja vēl paziņojums java
 Total elements : 5