Collectors is een laatste klasse die de Object-klasse uitbreidt. Het biedt reductiebewerkingen, zoals het verzamelen van elementen in collecties, het samenvatten van elementen volgens verschillende criteria, enz.
De klasse Java Collectors biedt verschillende methoden om met elementen om te gaan
Methoden | Beschrijving |
---|---|
openbare statische Collector-middelingDouble (ToDoubleFunction mapper) | Het retourneert een Collector die het rekenkundig gemiddelde produceert van een functie met dubbele waarde die op de invoerelementen wordt toegepast. Als er geen elementen aanwezig zijn, is het resultaat 0. |
openbare statische Collector reducerend (T-identiteit, BinaryOperator op) | Het retourneert een Collector die een reductie van zijn invoerelementen uitvoert onder een gespecificeerde BinaryOperator met behulp van de opgegeven identiteit. |
openbare statische verzamelaar | Het retourneert een Collector die een reductie van zijn invoerelementen uitvoert onder een gespecificeerde BinaryOperator. Het resultaat wordt beschreven als Optioneel. |
openbare statische Collector-reductie (U-identiteit, Functietoewijzer, BinaryOperator op) | Het retourneert een Collector die een reductie van zijn invoerelementen uitvoert onder een gespecificeerde mappingfunctie en BinaryOperator. Dit is een generalisatie van reduceren (Object, BinaryOperator) die een transformatie van de elementen mogelijk maakt vóór reductie. |
openbare statische verzamelaar | Het retourneert een Collector die een 'groeperen op'-bewerking implementeert op invoerelementen van het type T, elementen groepeert volgens een classificatiefunctie en de resultaten retourneert in een kaart. |
openbare statische verzamelaar | Het retourneert een Collector die een trapsgewijze 'groeperen op'-bewerking implementeert op invoerelementen van het type T, waarbij elementen worden gegroepeerd volgens een classificatiefunctie en vervolgens een reductiebewerking wordt uitgevoerd op de waarden die aan een bepaalde sleutel zijn gekoppeld met behulp van de opgegeven stroomafwaartse Collector. |
publiek statisch | Het retourneert een Collector die een trapsgewijze 'groeperen op'-bewerking implementeert op invoerelementen van het type T, waarbij elementen worden gegroepeerd volgens een classificatiefunctie en vervolgens een reductiebewerking wordt uitgevoerd op de waarden die aan een bepaalde sleutel zijn gekoppeld met behulp van de opgegeven stroomafwaartse Collector. De door de Collector geproduceerde kaart wordt gemaakt met de meegeleverde fabrieksfunctie. |
openbare statische verzamelaar | Het retourneert een gelijktijdige Collector die een 'groeperen op'-bewerking implementeert op invoerelementen van het type T, waarbij elementen worden gegroepeerd volgens een classificatiefunctie. |
openbare statische verzamelaar | Het retourneert een gelijktijdige Collector die een trapsgewijze 'groeperen op'-bewerking implementeert op invoerelementen van het type T, elementen groepeert volgens een classificatiefunctie en vervolgens een reductiebewerking uitvoert op de waarden die aan een bepaalde sleutel zijn gekoppeld met behulp van de opgegeven stroomafwaartse Collector. |
publiek statisch | Het retourneert een gelijktijdige Collector die een trapsgewijze 'groeperen op'-bewerking implementeert op invoerelementen van het type T, elementen groepeert volgens een classificatiefunctie en vervolgens een reductiebewerking uitvoert op de waarden die aan een bepaalde sleutel zijn gekoppeld met behulp van de opgegeven stroomafwaartse Collector. De door de Collector geproduceerde ConcurrentMap wordt gemaakt met de meegeleverde fabrieksfunctie. |
openbare statische verzamelaar | Het retourneert een Collector die de invoerelementen verdeelt volgens een predikaat en deze in een kaart organiseert |
openbare statische verzamelaar | Het retourneert een Collector die de invoerelementen verdeelt volgens een predikaat, de waarden in elke partitie reduceert volgens een andere Collector, en deze organiseert in een kaart waarvan de waarden het resultaat zijn van de stroomafwaartse reductie. |
openbare statische verzamelaar | Het retourneert een Collector die elementen verzamelt in een kaart waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
openbare statische verzamelaar | Het retourneert een Collector die elementen verzamelt in een kaart waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
publiek statisch | Het retourneert een Collector die elementen verzamelt in een kaart waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
openbare statische verzamelaar | Het retourneert een gelijktijdige Collector die elementen verzamelt in een ConcurrentMap waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
openbare statische verzamelaar | Het retourneert een gelijktijdige Collector die elementen verzamelt in een ConcurrentMap waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
publiek statisch | Het retourneert een gelijktijdige Collector die elementen verzamelt in een ConcurrentMap waarvan de sleutels en waarden het resultaat zijn van het toepassen van de geleverde toewijzingsfuncties op de invoerelementen. |
openbare statische Collector summarizingInt(ToIntFunction mapper) | Het retourneert een Collector die een int-producerende toewijzingsfunctie toepast op elk invoerelement, en samenvattende statistieken retourneert voor de resulterende waarden. |
openbare statische Collector samenvattingLong(ToLongFunction mapper) | Het retourneert een Collector die een langdurige mappingfunctie toepast op elk invoerelement, en samenvattende statistieken retourneert voor de resulterende waarden. |
openbare statische Collector dieDouble samenvat (ToDoubleFunction mapper) | Het retourneert een Collector die een dubbelproducerende toewijzingsfunctie toepast op elk invoerelement, en samenvattende statistieken retourneert voor de resulterende waarden. |
Java Collectors Voorbeeld: gegevens ophalen als lijst
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); } }
Uitgang:
[25000.0, 30000.0, 28000.0, 28000.0, 90000.0]
Java Collectors-voorbeeld: gegevens als set converteren
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); } }
Uitgang:
[25000.0, 30000.0, 28000.0, 90000.0]
Java Collectors Voorbeeld: de sommethode gebruiken
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); } }
Uitgang:
Sum of prices: 201000.0 Sum of id's: 15
Voorbeeld van Java Collectors: gemiddelde productprijs verkrijgen
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); } }
Uitgang:
Average price is: 40200.0
Java Collectors-voorbeeld: elementen tellen
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); } }
Uitgang:
Total elements : 5