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 statyczny | 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 | 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 statyczny | 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 statyka | 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 | 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 statyczny | 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 statyka | 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 | Zwraca moduł Collector, który dzieli elementy wejściowe według predykatu i organizuje je w mapę |
publiczny moduł zbierający statyczny | 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 statyczny | 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 statyczny | 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 statyka | 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 statyczny | 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 statyczny | 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 statyka | 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