logo

Java-Sammler

Collectors ist eine letzte Klasse, die die Object-Klasse erweitert. Es bietet Reduktionsoperationen, wie z. B. das Sammeln von Elementen in Sammlungen, das Zusammenfassen von Elementen nach verschiedenen Kriterien usw.

Die Java Collectors-Klasse bietet verschiedene Methoden zum Umgang mit Elementen

Methoden Beschreibung
öffentlicher statischer Collector averagingDouble(ToDoubleFunction Mapper) Es gibt einen Collector zurück, der das arithmetische Mittel einer zweiwertigen Funktion erzeugt, die auf die Eingabeelemente angewendet wird. Wenn keine Elemente vorhanden sind, ist das Ergebnis 0.
öffentlicher statischer Collector-Reduzierer (T-Identität, BinaryOperator op) Es gibt einen Collector zurück, der eine Reduzierung seiner Eingabeelemente unter einem angegebenen BinaryOperator unter Verwendung der bereitgestellten Identität durchführt.
öffentlicher statischer CollectorReduzieren (BinaryOperator op) Es gibt einen Collector zurück, der eine Reduzierung seiner Eingabeelemente unter einem angegebenen BinaryOperator durchführt. Das Ergebnis wird als optional beschrieben.
öffentlicher statischer Collector-Reduzierer (U-Identität, Funktions-Mapper, BinaryOperator op) Es gibt einen Collector zurück, der eine Reduzierung seiner Eingabeelemente unter einer angegebenen Zuordnungsfunktion und einem BinaryOperator durchführt. Dies ist eine Verallgemeinerung von reduction(Object, BinaryOperator), die eine Transformation der Elemente vor der Reduktion ermöglicht.
öffentlicher statischer Collector> groupingBy(Funktionsklassifikator) Es gibt einen Collector zurück, der eine „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert, Elemente gemäß einer Klassifizierungsfunktion gruppiert und die Ergebnisse in einer Karte zurückgibt.
öffentlicher statischer CollectorgroupingBy(Funktionsklassifikator, Collector nachgeschaltet) Es gibt einen Collector zurück, der eine kaskadierte „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert, Elemente gemäß einer Klassifizierungsfunktion gruppiert und dann mithilfe des angegebenen Downstream-Collectors eine Reduktionsoperation für die mit einem bestimmten Schlüssel verknüpften Werte durchführt.
öffentliche statische AufladungCollector-GruppierungBy (Funktionsklassifikator, Lieferanten-MapFactory, Collector-Downstream) Es gibt einen Collector zurück, der eine kaskadierte „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert, Elemente gemäß einer Klassifizierungsfunktion gruppiert und dann mithilfe des angegebenen Downstream-Collectors eine Reduktionsoperation für die mit einem bestimmten Schlüssel verknüpften Werte durchführt. Die vom Collector erzeugte Karte wird mit der mitgelieferten Factory-Funktion erstellt.
öffentlicher statischer Collector> groupingByConcurrent(Funktionsklassifikator) Es gibt einen gleichzeitigen Collector zurück, der eine „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert und Elemente gemäß einer Klassifizierungsfunktion gruppiert.
öffentlicher statischer CollectorgroupingByConcurrent(Funktionsklassifikator, Collector nachgeschaltet) Es gibt einen gleichzeitigen Collector zurück, der eine kaskadierte „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert, Elemente gemäß einer Klassifizierungsfunktion gruppiert und dann mithilfe des angegebenen Downstream-Collectors eine Reduktionsoperation für die mit einem bestimmten Schlüssel verknüpften Werte durchführt.
öffentliche statische AufladungCollector groupingByConcurrent(Funktionsklassifikator, Lieferanten-MapFactory, Collector-Downstream) Es gibt einen gleichzeitigen Collector zurück, der eine kaskadierte „Gruppieren nach“-Operation für Eingabeelemente vom Typ T implementiert, Elemente gemäß einer Klassifizierungsfunktion gruppiert und dann mithilfe des angegebenen Downstream-Collectors eine Reduktionsoperation für die mit einem bestimmten Schlüssel verknüpften Werte durchführt. Die vom Collector erzeugte ConcurrentMap wird mit der bereitgestellten Factory-Funktion erstellt.
öffentlicher statischer Collector> partitioningBy(Prädikatprädikat) Es gibt einen Collector zurück, der die Eingabeelemente gemäß einem Prädikat partitioniert und sie in einer Map organisiert . Es gibt keine Garantien für den Typ, die Veränderbarkeit, die Serialisierbarkeit oder die Thread-Sicherheit der zurückgegebenen Map.
öffentlicher statischer CollectorpartitioningBy(Prädikatprädikat, Collector-Downstream) Es gibt einen Collector zurück, der die Eingabeelemente gemäß einem Prädikat partitioniert, die Werte in jeder Partition gemäß einem anderen Collector reduziert und sie in einer Map organisiert, deren Werte das Ergebnis der Downstream-Reduzierung sind.
öffentlicher statischer CollectortoMap(Funktion keyMapper, Funktion valueMapper) Es gibt einen Collector zurück, der Elemente in einer Map akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Mapping-Funktionen auf die Eingabeelemente sind.
öffentlicher statischer CollectortoMap (Funktion keyMapper, Funktion valueMapper, BinaryOperator mergeFunction). Es gibt einen Collector zurück, der Elemente in einer Map akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Mapping-Funktionen auf die Eingabeelemente sind.
öffentliche statische AufladungCollector toMap(Funktion keyMapper, Funktion valueMapper, BinaryOperator mergeFunction, Lieferant mapSupplier) Es gibt einen Collector zurück, der Elemente in einer Map akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Mapping-Funktionen auf die Eingabeelemente sind.
öffentlicher statischer CollectortoConcurrentMap(Funktion keyMapper, Funktion valueMapper) Es gibt einen gleichzeitigen Collector zurück, der Elemente in einer ConcurrentMap akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Zuordnungsfunktionen auf die Eingabeelemente sind.
öffentlicher statischer CollectortoConcurrentMap(Funktion keyMapper, Funktion valueMapper, BinaryOperator mergeFunction) Es gibt einen gleichzeitigen Collector zurück, der Elemente in einer ConcurrentMap akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Zuordnungsfunktionen auf die Eingabeelemente sind.
öffentliche statische AufladungCollector toConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Es gibt einen gleichzeitigen Collector zurück, der Elemente in einer ConcurrentMap akkumuliert, deren Schlüssel und Werte das Ergebnis der Anwendung der bereitgestellten Zuordnungsfunktionen auf die Eingabeelemente sind.
öffentlicher statischer Collector summarizingInt(ToIntFunction Mapper) Es gibt einen Collector zurück, der auf jedes Eingabeelement eine int-erzeugende Zuordnungsfunktion anwendet und zusammenfassende Statistiken für die resultierenden Werte zurückgibt.
öffentlicher statischer Collector summarizingLong(ToLongFunction Mapper) Es gibt einen Collector zurück, der auf jedes Eingabeelement eine lange produzierende Zuordnungsfunktion anwendet und zusammenfassende Statistiken für die resultierenden Werte zurückgibt.
öffentlicher statischer Collector summarizingDouble(ToDoubleFunction Mapper) Es gibt einen Collector zurück, der auf jedes Eingabeelement eine doppelt erzeugende Zuordnungsfunktion anwendet und zusammenfassende Statistiken für die resultierenden Werte zurückgibt.

Beispiel für Java-Collectors: Daten als Liste abrufen

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

Ausgabe:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Beispiel für Java-Collectors: Konvertieren von Daten als Satz

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

Ausgabe:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Beispiel für Java Collectors: Verwendung der Summenmethode

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

Ausgabe:

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

Beispiel für Java Collectors: Durchschnittspreis eines Produkts ermitteln

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

Ausgabe:

 Average price is: 40200.0 

Beispiel für Java-Kollektoren: Elemente zählen

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

Ausgabe:

 Total elements : 5