logo

Java-samlare

Collectors är en sista klass som utökar objektklassen. Det tillhandahåller reduktionsoperationer, såsom att ackumulera element i samlingar, sammanfatta element enligt olika kriterier, etc.

Java Collectors-klassen tillhandahåller olika metoder för att hantera element

Metoder Beskrivning
public static Collector averagingDouble(ToDoubleFunction mapper) Den returnerar en Collector som producerar det aritmetiska medelvärdet av en dubbelvärderad funktion som tillämpas på inmatningselementen. Om inga element finns är resultatet 0.
public static Collector reducering (T-identitet, BinaryOperator op) Den returnerar en Collector som utför en minskning av sina inmatningselement under en specificerad BinaryOperator med den angivna identiteten.
offentlig statisk samlarereducering(BinaryOperator op) Den returnerar en Collector som utför en reduktion av dess inmatningselement under en specificerad BinaryOperator. Resultatet beskrivs som ett valfritt.
public static Collector reducering (U-identitet, Funktionsmappare, BinaryOperator op) Den returnerar en Collector som utför en reduktion av sina indataelement under en specificerad mappningsfunktion och BinaryOperator. Detta är en generalisering av reducering (Object, BinaryOperator) som tillåter en transformation av elementen före reduktion.
offentlig statisk samlare> groupingBy(Funktionsklassificerare) Den returnerar en Collector som implementerar en 'gruppa efter'-operation på indataelement av typ T, grupperar element enligt en klassificeringsfunktion och returnerar resultaten i en karta.
offentlig statisk samlaregroupingBy(Funktionsklassificerare, Collector nedströms) Den returnerar en Collector som implementerar en kaskadad 'grupp efter'-operation på ingångselement av typ T, grupperar element enligt en klassificeringsfunktion och utför sedan en reduceringsoperation på värdena som är associerade med en given nyckel med den specificerade nedströms Collector.
offentlig statiskCollector groupingBy(Funktionsklassificerare, LeverantörskartaFactory, Collector downstream) Den returnerar en Collector som implementerar en kaskadad 'grupp efter'-operation på ingångselement av typ T, grupperar element enligt en klassificeringsfunktion och utför sedan en reduceringsoperation på värdena som är associerade med en given nyckel med den specificerade nedströms Collector. Kartan som produceras av Collector skapas med den medföljande fabriksfunktionen.
offentlig statisk samlare> groupingByConcurrent(Funktionsklassificerare) Den returnerar en samtidig Collector som implementerar en 'gruppa efter'-operation på inmatningselement av typ T, och grupperar element enligt en klassificeringsfunktion.
offentlig statisk samlaregroupingByConcurrent(Funktionsklassificerare, Collector nedströms) Den returnerar en samtidig Collector som implementerar en kaskadad 'grupp efter'-operation på inmatningselement av typ T, grupperar element enligt en klassificeringsfunktion och utför sedan en reduceringsoperation på värdena som är associerade med en given nyckel med den specificerade nedströms Collector.
offentlig statiskSamlargruppering Efter samtidiga (funktionsklassificerare, leverantörskartaFactory, Collector nedströms) Den returnerar en samtidig Collector som implementerar en kaskadad 'grupp efter'-operation på inmatningselement av typ T, grupperar element enligt en klassificeringsfunktion och utför sedan en reduceringsoperation på värdena som är associerade med en given nyckel med den specificerade nedströms Collector. ConcurrentMap som produceras av Collector skapas med den medföljande fabriksfunktionen.
offentlig statisk samlare> partitioningBy(Predikatpredikat) Den returnerar en Collector som partitionerar inmatningselementen enligt ett predikat och organiserar dem i en karta . Det finns inga garantier för typ, föränderlighet, serialisering eller trådsäkerhet för den returnerade kartan.
offentlig statisk samlarepartitioningBy(Predikatpredikat, Collector nedströms) Den returnerar en Collector som partitionerar inmatningselementen enligt ett predikat, reducerar värdena i varje partition enligt en annan Collector och organiserar dem i en karta vars värden är resultatet av nedströmsreduktionen.
offentlig statisk samlaretoMap(Function keyMapper, Function valueMapper) Den returnerar en Collector som ackumulerar element i en karta vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
offentlig statisk samlaretoMap ( Funktion keyMapper , Function valueMapper , BinaryOperator mergeFunction ) . Den returnerar en Collector som ackumulerar element i en karta vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
offentlig statiskCollector toMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Den returnerar en Collector som ackumulerar element i en karta vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
offentlig statisk samlaretoConcurrentMap(Function keyMapper, Function valueMapper) Den returnerar en samtidig samlare som ackumulerar element i en ConcurrentMap vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
offentlig statisk samlaretoConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) Den returnerar en samtidig samlare som ackumulerar element i en ConcurrentMap vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
offentlig statiskCollector toConcurrentMap(Function keyMapper, Function valueMapper, BinaryOperator mergeFunction, Supplier mapSupplier) Den returnerar en samtidig samlare som ackumulerar element i en ConcurrentMap vars nycklar och värden är resultatet av att de tillhandahållna mappningsfunktionerna tillämpas på inmatningselementen.
public static Collector summarizingInt(ToIntFunction mapper) Den returnerar en Collector som tillämpar en int-producerande mappningsfunktion på varje inmatningselement och returnerar sammanfattande statistik för de resulterande värdena.
public static Collector summarizingLong(ToLongFunction mapper) Den returnerar en Collector som tillämpar en långproducerande mappningsfunktion på varje inmatningselement och returnerar sammanfattande statistik för de resulterande värdena.
public static Collector summarizingDouble(ToDoubleFunction mapper) Den returnerar en Collector som tillämpar en dubbelproducerande mappningsfunktion på varje inmatningselement och returnerar sammanfattande statistik för de resulterande värdena.

Java-samlare Exempel: Hämta data som en lista

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

Produktion:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Java-samlare Exempel: Konvertera data som en uppsättning

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

Produktion:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Java-samlare Exempel: använder summametoden

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

Produktion:

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

Exempel på Java-samlare: Få produkts genomsnittspris

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

Produktion:

 Average price is: 40200.0 

Java-samlare Exempel: Räkna element

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

Produktion:

 Total elements : 5