logo

Java kolekcionieriai

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 kolektoriussumažinimas (BinaryOperator op) 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> grupavimas pagal (funkcijų klasifikatorius) 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 kolektoriusgrupavimas pagal (funkcijų klasifikatorius, kolektorius pasroviui) 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 statinisKolektorių grupavimas pagal (funkcijų klasifikatorius, tiekėjo žemėlapis, gamykla, kolektorius pasroviui) 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> grupavimas pagal vienu metu (funkcijų klasifikatorius) Jis grąžina lygiagretųjį rinktuvą, įgyvendinantį T tipo įvesties elementų operaciją „grupuoti pagal“, grupuodamas elementus pagal klasifikavimo funkciją.
viešas statinis kolektoriusgroupingByConcurrent (funkcijų klasifikatorius, kolektorius pasroviui) 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 statinisKolektorių grupavimas vienu metu (Funkcijų klasifikatorius, Tiekėjo žemėlapisGamykla, Kolektorius pasroviui) 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> partitioningBy (predikatinis predikatas) Jis grąžina rinktuvą, kuris suskirsto įvesties elementus pagal predikatą ir suskirsto juos į žemėlapį . Nėra jokių garantijų dėl grąžinamo žemėlapio tipo, kintamumo, serializavimo ar gijų saugumo.
viešas statinis kolektoriusskirstymas pagal (predikato predikatas, kolektorius pasroviui) 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 kolektoriustoMap (funkcijos klavišų sudarytojas, funkcijos vertės žemėlapis) 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 kolektoriustoMap ( Function keyMapper , Function valueMapper , BinaryOperator mergeFunction ) . Jis grąžina rinktuvą, kuris kaupia elementus į žemėlapį, kurio raktai ir reikšmės yra taikant pateiktas atvaizdavimo funkcijas įvesties elementams.
viešas statinisKolektorius į žemėlapį (Function KeyMapper, Function valueMapper, BinaryOperator mergeFunction, Tiekėjo žemėlapio Tiekėjas) 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 kolektoriusto ConcurrentMap (Function KeyMapper, Function valueMapper) 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 kolektoriusto ConcurrentMap (Function KeyMapper, Function valueMapper, BinaryOperator mergeFunction) 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 statinisCollector to ConcurrentMap (Function KeyMapper, Function valueMapper, BinaryOperator mergeFunction, Tiekėjo žemėlapio Tiekėjas) 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