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ä | 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ä | Se palauttaa Collectorin, joka toteuttaa 'ryhmitellä'-operaation tyypin T syöteelementeillä, ryhmittelee elementit luokitusfunktion mukaan ja palauttaa tulokset kartassa. |
julkinen staattinen keräilijä | 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 staattinen | 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ä | Se palauttaa samanaikaisen Collectorin, joka toteuttaa 'ryhmitellä'-operaation tyypin T syöteelementeillä ryhmittelemällä elementit luokitusfunktion mukaan. |
julkinen staattinen keräilijä | 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 staattinen | 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ä | Se palauttaa kerääjän, joka jakaa syöteelementit predikaatin mukaan ja järjestää ne kartaksi |
julkinen staattinen keräilijä | 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ä | 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ä | Se palauttaa keräilijän, joka kerää elementtejä kartaksi, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin. |
julkinen staattinen | 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ä | Se palauttaa samanaikaisen Collectorin, joka kerää elementtejä ConcurrentMapiin, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin. |
julkinen staattinen keräilijä | Se palauttaa samanaikaisen Collectorin, joka kerää elementtejä ConcurrentMapiin, jonka avaimet ja arvot ovat seurausta annettujen kartoitusfunktioiden soveltamisesta syöttöelementteihin. |
julkinen staattinen | 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