Kolekcionieriai yra paskutinė klasė, praplečianti objektų klasę. Jame numatytos mažinimo operacijos, tokios kaip elementų kaupimas į kolekcijas, elementų apibendrinimas pagal įvairius kriterijus ir kt.
„Java Collectors“ klasė pateikia įvairius metodus, kaip elgtis su elementais
Metodai | apibūdinimas |
---|---|
viešas statinis kolekcionieriaus vidurkisDvigubas (ToDoubleFunction kartografas) | Jis grąžina rinktuvą, kuris sukuria įvesties elementams pritaikytos dvigubos reikšmės funkcijos aritmetinį vidurkį. Jei elementų nėra, rezultatas yra 0. |
viešas statinis kolektoriaus mažinimas (T tapatybė, dvejetainio operatoriaus operacija) | Jis grąžina rinktuvą, kuris sumažina savo įvesties elementus pagal nurodytą dvejetainį operatorių, naudodamas pateiktą tapatybę. |
viešas statinis kolektorius | Jis grąžina rinktuvą, kuris sumažina savo įvesties elementus pagal nurodytą dvejetainį operatorių. Rezultatas apibūdinamas kaip neprivalomas. |
viešas statinis kolektoriaus mažinimas (U tapatybė, funkcijų atvaizdavimo priemonė, dvejetainio operatoriaus operacija) | Jis grąžina rinktuvą, kuris sumažina savo įvesties elementus pagal nurodytą atvaizdavimo funkciją ir BinaryOperator. Tai redukavimo (Object, BinaryOperator) apibendrinimas, leidžiantis transformuoti elementus prieš redukavimą. |
viešas statinis kolektorius | Jis grąžina rinktuvą, įgyvendinantį operaciją „grupuoti pagal“ T tipo įvesties elementuose, sugrupuodamas elementus pagal klasifikavimo funkciją ir pateikdamas rezultatus žemėlapyje. |
viešas statinis kolektorius | Jis grąžina rinktuvą, įgyvendinantį pakopinę operaciją „grupuoti pagal“ T tipo įvesties elementuose, sugrupuodamas elementus pagal klasifikavimo funkciją ir tada atlikdamas su duotuoju raktu susietų verčių mažinimo operaciją, naudodamas nurodytą paskesnį kolektorius. |
viešas statinis | Jis grąžina rinktuvą, įgyvendinantį pakopinę operaciją „grupuoti pagal“ T tipo įvesties elementuose, sugrupuodamas elementus pagal klasifikavimo funkciją ir tada atlikdamas su duotuoju raktu susietų verčių mažinimo operaciją, naudodamas nurodytą paskesnį kolektorius. Kolekcionieriaus sukurtas žemėlapis sukuriamas naudojant gamyklinę funkciją. |
viešas statinis kolektorius | Jis grąžina lygiagretųjį rinktuvą, įgyvendinantį T tipo įvesties elementų operaciją „grupuoti pagal“, grupuodamas elementus pagal klasifikavimo funkciją. |
viešas statinis kolektorius | Jis grąžina lygiagretųjį rinktuvą, įgyvendinantį pakopinę operaciją „grupuoti pagal“ T tipo įvesties elementuose, sugrupuodamas elementus pagal klasifikavimo funkciją, o tada atlikdamas su nurodytu raktu susietų verčių mažinimo operaciją, naudodamas nurodytą paskesnį kolektorius. |
viešas statinis | Jis grąžina lygiagretųjį rinktuvą, įgyvendinantį pakopinę operaciją „grupuoti pagal“ T tipo įvesties elementuose, sugrupuodamas elementus pagal klasifikavimo funkciją, o tada atlikdamas su nurodytu raktu susietų verčių mažinimo operaciją, naudodamas nurodytą paskesnį kolektorius. Kolekcionieriaus sukurtas ConcurrentMap yra sukurtas naudojant gamyklinę funkciją. |
viešas statinis kolektorius | Jis grąžina rinktuvą, kuris suskirsto įvesties elementus pagal predikatą ir suskirsto juos į žemėlapį |
viešas statinis kolektorius | Jis grąžina rinktuvą, kuris skaido įvesties elementus pagal predikatą, sumažina kiekvieno skaidinio reikšmes pagal kitą rinktuvą ir suskirsto jas į žemėlapį, kurio reikšmės yra sumažinimo pasroviui rezultatas. |
viešas statinis kolektorius | Jis grąžina rinktuvą, kuris kaupia elementus į žemėlapį, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis kolektorius | Jis grąžina rinktuvą, kuris kaupia elementus į žemėlapį, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis | Jis grąžina rinktuvą, kuris kaupia elementus į žemėlapį, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis kolektorius | Jis grąžina lygiagretųjį rinktuvą, kuris kaupia elementus ConcurrentMap, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis kolektorius | Jis grąžina lygiagretųjį rinktuvą, kuris kaupia elementus ConcurrentMap, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis | Jis grąžina lygiagretųjį rinktuvą, kuris kaupia elementus ConcurrentMap, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams. |
viešas statinis kolekcionierius, apibendrinantisInt (ToIntFunction kartografas) | Jis grąžina rinktuvą, kuris kiekvienam įvesties elementui taiko įvestą atvaizdavimo funkciją, ir pateikia gautų reikšmių suvestinę statistiką. |
viešas statinis kolekcionierius apibendrinantisLong (ToLongFunction kartografas) | Jis grąžina rinktuvą, kuris kiekvienam įvesties elementui taiko ilgai sukuriamą atvaizdavimo funkciją, ir pateikia gautų reikšmių suvestinę statistiką. |
viešas statinis kolekcionierius, apibendrinantis „Double“ („ToDoubleFunction“ žemėlapis) | Jis grąžina rinktuvą, kuris kiekvienam įvesties elementui taiko dvigubą atvaizdavimo funkciją, ir pateikia gautų reikšmių suvestinę statistiką. |
„Java“ rinktuvų pavyzdys: duomenų gavimas kaip sąrašas
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); } }
Išvestis:
[25000.0, 30000.0, 28000.0, 28000.0, 90000.0]
„Java“ rinktuvų pavyzdys: duomenų konvertavimas į rinkinį
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); } }
Išvestis:
[25000.0, 30000.0, 28000.0, 90000.0]
Java Collectors Pavyzdys: naudojant sumos metodą
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); } }
Išvestis:
Sum of prices: 201000.0 Sum of id's: 15
„Java“ kolekcionierių pavyzdys: gauti vidutinę produkto kainą
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); } }
Išvestis:
Average price is: 40200.0
„Java“ kolekcionierių pavyzdys: elementų skaičiavimas
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); } }
Išvestis:
Total elements : 5