logo

Java-keräilijät

Collectors on viimeinen luokka, joka laajentaa Object-luokkaa. Se tarjoaa pelkistystoimintoja, kuten elementtien keräämisen kokoelmiin, elementtien yhteenvetoa eri kriteerien mukaan jne.

Java Collectors -luokka tarjoaa erilaisia ​​tapoja käsitellä elementtejä

menetelmät Kuvaus
julkinen staattinen Keräilijän keskiarvotDouble (ToDoubleFunction Mapper) Se palauttaa kerääjän, joka tuottaa syöteelementteihin käytetyn kaksinkertaisen funktion aritmeettisen keskiarvon. Jos elementtejä ei ole, tulos on 0.
julkinen staattinen keräilijän vähentäminen (T-identiteetti, BinaryOperator op) Se palauttaa Collectorin, joka vähentää syöteelementtejään määritetyn BinaryOperatorin alla käyttämällä annettua identiteettiä.
julkinen staattinen keräilijävähentäminen (BinaryOperator op) Se palauttaa Collectorin, joka vähentää syöteelementtejään määritetyn BinaryOperatorin alaisuudessa. Tulos kuvataan valinnaiseksi.
julkinen staattinen keräilijän vähentäminen (U-identiteetti, funktiokartoittaja, binaarioperaattorin käyttö) Se palauttaa Collectorin, joka vähentää syöteelementtejään määritetyn kuvaustoiminnon ja BinaryOperatorin alaisuudessa. Tämä on pelkistyksen yleistys (Object, BinaryOperator), joka mahdollistaa elementtien muuntamisen ennen pelkistämistä.
julkinen staattinen keräilijä> ryhmittelyn mukaan (funktion luokitin) Se palauttaa Collectorin, joka toteuttaa 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja palauttaa tulokset kartassa.
julkinen staattinen keräilijägroupingBy (funktion luokitin, kerääjä alavirran puolella) Se palauttaa Collectorin, joka toteuttaa peräkkäisen 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja suorittaa sitten vähennystoiminnon tiettyyn avaimeen liittyville arvoille käyttämällä määritettyä alavirran Collectoria.
julkinen staattinenKeräilijöiden ryhmittely(funktion luokitin, ToimittajakarttaTehdas, Keräilijä alavirtaan) Se palauttaa Collectorin, joka toteuttaa peräkkäisen 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja suorittaa sitten vähennystoiminnon tiettyyn avaimeen liittyville arvoille käyttämällä määritettyä alavirran Collectoria. Collectorin tuottama kartta luodaan mukana toimitetulla tehdastoiminnolla.
julkinen staattinen keräilijä> ryhmittely Samanaikaisesti (funktion luokitin) Se palauttaa samanaikaisen Collectorin, joka toteuttaa 'ryhmitellä'-operaation tyypin T syöteelementeillä ryhmittelemällä elementit luokitusfunktion mukaan.
julkinen staattinen keräilijägroupingByConcurrent (funktion luokitin, kerääjä alavirtaan) Se palauttaa samanaikaisen keräilijän, joka toteuttaa peräkkäisen 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja suorittaa sitten vähennystoiminnon tiettyyn avaimeen liittyville arvoille käyttämällä määritettyä alavirran Collectoria.
julkinen staattinenKeräilijöiden ryhmittely Samanaikaisesti (Toimintoluokitus, ToimittajakarttaTehdas, Keräilijä alavirtaan) Se palauttaa samanaikaisen keräilijän, joka toteuttaa peräkkäisen 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja suorittaa sitten vähennystoiminnon tiettyyn avaimeen liittyville arvoille käyttämällä määritettyä alavirran Collectoria. Collectorin tuottama ConcurrentMap luodaan mukana toimitetulla tehdastoiminnolla.
julkinen staattinen keräilijä> osiointiperuste (predikaattipredikaatti) Se palauttaa kerääjän, joka jakaa syöteelementit predikaatin mukaan ja järjestää ne kartaksi . Palautetun kartan tyypistä, muuttuvuudesta, serialoitavuudesta tai säikeiden turvallisuudesta ei ole takeita.
julkinen staattinen keräilijäosiointiperuste (predikaattipredikaatti, keräilijä alavirtaan) Se palauttaa kerääjän, joka jakaa syöteelementit predikaatin mukaan, pienentää kunkin osion arvot toisen kerääjän mukaan ja järjestää ne kartaksi, jonka arvot ovat seurausta alavirran vähennyksestä.
julkinen staattinen keräilijätoMap (Function keyMapper, Function valueMapper) Se palauttaa keräilijän, joka kerää elementtejä kartaksi, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinen keräilijätoMap ( Function keyMapper , Function valueMapper , BinaryOperator mergeFunction ) . Se palauttaa keräilijän, joka kerää elementtejä kartaksi, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinenKeräilijäkarttaan (funktion avainkartoittaja, funktion arvokartoittaja, binaarioperaattorin yhdistämistoiminto, toimittajan karttatoimittaja) Se palauttaa keräilijän, joka kerää elementtejä kartaksi, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinen keräilijäto ConcurrentMap (Function keyMapper, Function valueMapper) Se palauttaa samanaikaisen Collectorin, joka kerää elementtejä ConcurrentMapiin, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinen keräilijäto ConcurrentMap (Function keyMapper, Function valueMapper, BinaryOperator mergeFunction) Se palauttaa samanaikaisen Collectorin, joka kerää elementtejä ConcurrentMapiin, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinenKerääjä ConcurrentMap-karttaan (Function KeyMapper, Function valueMapper, BinaryOperator mergeFunction, Toimittajan karttaToimittaja) Se palauttaa samanaikaisen Collectorin, joka kerää elementtejä ConcurrentMapiin, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin.
julkinen staattinen Keräilijän yhteenvetoInt (ToIntFunction-kartoittaja) Se palauttaa Collectorin, joka käyttää int-tuottavaa kartoitusfunktiota jokaiseen syöteelementtiin, ja palauttaa yhteenvetotilastot tuloksena oleville arvoille.
julkinen staattinen Keräilijän yhteenvetoLong (ToLongFunction-kartoittaja) Se palauttaa Collectorin, joka käyttää pitkään tuottavaa kartoitusfunktiota jokaiseen syöteelementtiin, ja palauttaa yhteenvetotilastot tuloksena oleville arvoille.
julkinen staattinen keräilijän yhteenvetoDouble (ToDoubleFunction mapper) Se palauttaa Collectorin, joka käyttää kaksinkertaista kuvaustoimintoa jokaiseen syöteelementtiin ja palauttaa yhteenvetotilastot tuloksena oleville arvoille.

Java-keräilijät Esimerkki: Tietojen hakeminen luettelona

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

Lähtö:

 [25000.0, 30000.0, 28000.0, 28000.0, 90000.0] 

Java-keräilijät Esimerkki: Datan muuntaminen joukoksi

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

Lähtö:

 [25000.0, 30000.0, 28000.0, 90000.0] 

Java-keräilijät Esimerkki: käyttämällä summamenetelmää

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

Lähtö:

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

Java-keräilijät Esimerkki: Tuotteen keskihinnan saaminen

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

Lähtö:

 Average price is: 40200.0 

Java-keräilijät Esimerkki: Elementtien laskeminen

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

Lähtö:

yritys vs yritys
 Total elements : 5