logo

Kolekcjonerzy Javy

Collectors to ostatnia klasa, która rozszerza klasę Object. Zapewnia operacje redukcyjne, takie jak gromadzenie elementów w zbiory, sumowanie elementów według różnych kryteriów itp.

Klasa Java Collectors udostępnia różne metody radzenia sobie z elementami

Metody Opis
public static Collector averagingDouble(Maper funkcji ToDoubleFunction) Zwraca Collector, który generuje średnią arytmetyczną funkcji o podwójnej wartości zastosowanej do elementów wejściowych. Jeśli nie ma żadnych elementów, wynikiem jest 0.
publiczna statyczna redukcja kolektora (tożsamość T, op. BinaryOperator) Zwraca obiekt Collector, który dokonuje redukcji elementów wejściowych w ramach określonego BinaryOperator przy użyciu podanej tożsamości.
publiczny moduł zbierający statycznyredukcja(BinaryOperator op) Zwraca obiekt Collector, który dokonuje redukcji elementów wejściowych w ramach określonego BinaryOperator. Wynik jest opisany jako opcjonalny.
publiczna statyczna redukcja kolektora (tożsamość U, mapowanie funkcji, operacja BinaryOperator) Zwraca Collector, który dokonuje redukcji elementów wejściowych w ramach określonej funkcji mapowania i BinaryOperator. Jest to uogólnienie metody redukcji(Object, BinaryOperator), które umożliwia transformację elementów przed redukcją.
publiczny moduł zbierający statyczny> groupingBy (klasyfikator funkcji) Zwraca moduł Collector realizujący operację „grupowania według” na elementach wejściowych typu T, grupujący elementy według funkcji klasyfikacyjnej i zwracający wyniki w postaci mapy.
publiczny moduł zbierający statycznygroupingBy (klasyfikator funkcji, kolektor poniżej) Zwraca moduł Collector realizujący kaskadową operację „grupowania według” na elementach wejściowych typu T, grupujący elementy według funkcji klasyfikacyjnej, a następnie wykonujący operację redukcji wartości powiązanych z danym kluczem przy użyciu określonego modułu zbierającego znajdującego się poniżej.
publiczna statykaGrupowanie kolektorówBy (klasyfikator funkcji, mapa dostawcówFabryka, kolektor poniżej) Zwraca moduł Collector realizujący kaskadową operację „grupowania według” na elementach wejściowych typu T, grupujący elementy według funkcji klasyfikacyjnej, a następnie wykonujący operację redukcji wartości powiązanych z danym kluczem przy użyciu określonego modułu zbierającego znajdującego się poniżej. Mapa stworzona przez Collector jest tworzona przy użyciu dostarczonej funkcji fabrycznej.
publiczny moduł zbierający statyczny> groupingByConcurrent (klasyfikator funkcji) Zwraca współbieżny moduł zbierający realizujący operację „grupowania według” na elementach wejściowych typu T, grupującą elementy według funkcji klasyfikacyjnej.
publiczny moduł zbierający statycznygroupingByConcurrent (klasyfikator funkcji, kolektor poniżej) Zwraca współbieżny moduł zbierający realizujący kaskadową operację „grupowania według” na elementach wejściowych typu T, grupujący elementy zgodnie z funkcją klasyfikacyjną, a następnie wykonujący operację redukcji wartości powiązanych z danym kluczem przy użyciu określonego modułu zbierającego znajdującego się poniżej.
publiczna statykaGrupowanie kolektorówByConcurrent (klasyfikator funkcji, mapa dostawcówFabryka, kolektor poniżej) Zwraca współbieżny moduł zbierający realizujący kaskadową operację „grupowania według” na elementach wejściowych typu T, grupujący elementy zgodnie z funkcją klasyfikacyjną, a następnie wykonujący operację redukcji wartości powiązanych z danym kluczem przy użyciu określonego modułu zbierającego znajdującego się poniżej. Mapa ConcurrentMap stworzona przez moduł Collector jest tworzona przy użyciu dostarczonej funkcji fabrycznej.
publiczny moduł zbierający statyczny> partycjonowanieBy (predykat predykatu) Zwraca moduł Collector, który dzieli elementy wejściowe według predykatu i organizuje je w mapę . Nie ma żadnych gwarancji dotyczących typu, zmienności, możliwości serializacji lub bezpieczeństwa wątków zwróconej mapy.
publiczny moduł zbierający statycznypartycjonowanieBy (predykat predykatu, moduł zbierający w dół) Zwraca kolektor, który dzieli elementy wejściowe według predykatu, redukuje wartości w każdej partycji według innego kolektora i organizuje je w mapę, której wartości są wynikiem dalszej redukcji.
publiczny moduł zbierający statycznytoMap(funkcja keyMapper, funkcja valueMapper) Zwraca moduł Collector, który gromadzi elementy w Mapie, której klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
publiczny moduł zbierający statycznytoMap (funkcja keyMapper, funkcja valueMapper, BinaryOperator mergeFunction). Zwraca moduł Collector, który gromadzi elementy w Mapie, której klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
publiczna statykaCollector toMap (funkcja keyMapper, funkcja valueMapper, BinaryOperator mergeFunction, dostawca mapSupplier) Zwraca moduł Collector, który gromadzi elementy w Mapie, której klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
publiczny moduł zbierający statycznytoConcurrentMap(mapa klawiszy funkcyjnych, mapa wartości funkcji) Zwraca współbieżny moduł zbierający, który gromadzi elementy w ConcurrentMap, którego klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
publiczny moduł zbierający statycznytoConcurrentMap(funkcja keyMapper, funkcja valueMapper, BinaryOperator mergeFunction) Zwraca współbieżny moduł zbierający, który gromadzi elementy w ConcurrentMap, którego klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
publiczna statykaCollector toConcurrentMap (funkcja keyMapper, funkcja valueMapper, BinaryOperator mergeFunction, dostawca mapSupplier) Zwraca współbieżny moduł zbierający, który gromadzi elementy w ConcurrentMap, którego klucze i wartości są wynikiem zastosowania dostarczonych funkcji mapowania do elementów wejściowych.
public static Collector podsumowującyInt(mapujący ToIntFunction) Zwraca obiekt Collector, który stosuje funkcję mapowania generującą int do każdego elementu wejściowego i zwraca statystyki podsumowujące dla wynikowych wartości.
public static Collector podsumowującyLong (mapujący ToLongFunction) Zwraca obiekt Collector, który stosuje długo tworzącą funkcję mapowania do każdego elementu wejściowego i zwraca statystyki podsumowujące dla wynikowych wartości.
public static Collector podsumowującyDouble (mapujący ToDoubleFunction) Zwraca obiekt Collector, który stosuje podwójną funkcję mapowania do każdego elementu wejściowego i zwraca statystyki podsumowujące dla wynikowych wartości.

Przykład modułów zbierających Java: pobieranie danych w postaci listy

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

Wyjście:

sieciowy system operacyjny
 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Przykład modułów zbierających Java: konwertowanie danych jako zestawu

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

Wyjście:

rzutuj na ciąg Java
 [25000.0, 30000.0, 28000.0, 90000.0] 

Przykład kolektorów Java: użycie metody sumy

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

Wyjście:

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

Przykład kolekcjonerów Java: uzyskiwanie średniej 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); } } 

Wyjście:

 Average price is: 40200.0 

Przykład kolektorów Java: liczenie elementów

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

Wyjście:

 Total elements : 5