Virran Yhteenvetotilastojen Hakeminen Summarystatistics()-Menetelmällä
Kun käsitellään dataa, on usein tarpeen laskea tilastollisia mittareita kuten summa, keskiarvo, minimi, maksimi ja alkioiden määrä.
Olet jo oppinut, miten löytää minimi- ja maksimiarvot streamista, mutta on olemassa menetelmä, joka kerää kaikki nämä tilastotiedot kerralla. Java Stream API tarjoaa tähän tarkoitukseen erityisen metodin nimeltä summaryStatistics(), joka helpottaa yleisten tilastojen hakemista numeerisista streameista.
Metodi summaryStatistics()
Stream API tarjoaa myös erikoistuneita numeerisia streameja: IntStream, LongStream ja DoubleStream. Nämä toimivat kuten tavalliset streamit, mutta ne on optimoitu tiettyjä primitivityyppejä varten.
Jokainen näistä numeerisista streameista sisältää summaryStatistics()-metodin, joka palauttaa olion IntSummaryStatistics, LongSummaryStatistics tai DoubleSummaryStatistics tyypistä riippuen. Nämä oliot sisältävät keskeiset tilastolliset mittarit, kuten määrä, summa, minimi, maksimi ja keskiarvo.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Kutsumalla summaryStatistics() numeeriselle streamille voit nopeasti kerätä ja analysoida tilastotietoja sen arvoista.
Keskeiset metodit
Javassa luokat IntSummaryStatistics, LongSummaryStatistics ja DoubleSummaryStatistics käytetään keräämään tilastoja numeerisista tiedoista. Ne tarjoavat joukon metodeja tärkeimpien tilastollisten mittareiden hakemiseen.
Käytännön esimerkki
Verkkokaupassa täytyy analysoida tuotteiden hintoja selvittääkseen minimi- ja maksimihinnan, keskihinnan sekä kokonaismäärän.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
Tässä koodissa luodaan tuotehintojen lista ja muunnetaan se numeeriseksi virraksi. Metodi Collectors.summarizingInt(Integer::intValue) kerää tilastotiedot ja tallentaa ne IntSummaryStatistics-olioon. Tämän jälkeen käytetään metodeja getMin(), getMax(), getAverage(), getCount() ja getSum() tarvittavien arvojen hakemiseen.
Lisämenetelmät
Metodi combine() yhdistää kaksi tilasto-oliota. Tämä on hyödyllistä, kun dataa käsitellään useassa säikeessä tai kun tilastoja yhdistetään eri lähteistä.
Metodi accept() lisää manuaalisesti arvoja tilasto-olioon, mikä on hyödyllistä, kun dataa päivitetään dynaamisesti.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
Tässä esimerkissä luodaan kaksi IntSummaryStatistics-oliota, joihin kumpaankin lisätään arvoja käyttämällä accept()-metodia. combine()-metodi yhdistää sitten molempien olioiden tilastotiedot, päivittäen kokonaismäärän (count), summan (sum) sekä pienimmän ja suurimman arvon (min/max values).
Tämän seurauksena stats1 sisältää nyt kaikkien lukujen yhdistetyt tilastotiedot, jotka tulostetaan konsoliin.
1. Mitä luokkaa käytetään int-arvojen tilastojen keräämiseen Stream API:ssa?
2. Mikä menetelmä lisää arvon IntSummaryStatistics-olioon?
3. Mikä menetelmä yhdistää kaksi IntSummaryStatistics-oliota?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.33
Virran Yhteenvetotilastojen Hakeminen Summarystatistics()-Menetelmällä
Pyyhkäise näyttääksesi valikon
Kun käsitellään dataa, on usein tarpeen laskea tilastollisia mittareita kuten summa, keskiarvo, minimi, maksimi ja alkioiden määrä.
Olet jo oppinut, miten löytää minimi- ja maksimiarvot streamista, mutta on olemassa menetelmä, joka kerää kaikki nämä tilastotiedot kerralla. Java Stream API tarjoaa tähän tarkoitukseen erityisen metodin nimeltä summaryStatistics(), joka helpottaa yleisten tilastojen hakemista numeerisista streameista.
Metodi summaryStatistics()
Stream API tarjoaa myös erikoistuneita numeerisia streameja: IntStream, LongStream ja DoubleStream. Nämä toimivat kuten tavalliset streamit, mutta ne on optimoitu tiettyjä primitivityyppejä varten.
Jokainen näistä numeerisista streameista sisältää summaryStatistics()-metodin, joka palauttaa olion IntSummaryStatistics, LongSummaryStatistics tai DoubleSummaryStatistics tyypistä riippuen. Nämä oliot sisältävät keskeiset tilastolliset mittarit, kuten määrä, summa, minimi, maksimi ja keskiarvo.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Kutsumalla summaryStatistics() numeeriselle streamille voit nopeasti kerätä ja analysoida tilastotietoja sen arvoista.
Keskeiset metodit
Javassa luokat IntSummaryStatistics, LongSummaryStatistics ja DoubleSummaryStatistics käytetään keräämään tilastoja numeerisista tiedoista. Ne tarjoavat joukon metodeja tärkeimpien tilastollisten mittareiden hakemiseen.
Käytännön esimerkki
Verkkokaupassa täytyy analysoida tuotteiden hintoja selvittääkseen minimi- ja maksimihinnan, keskihinnan sekä kokonaismäärän.
Main.java
1234567891011121314151617181920package com.example; import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3500, 1200, 4000, 2500); IntSummaryStatistics stats = prices.stream() .collect(Collectors.summarizingInt(Integer::intValue)); System.out.println("Minimum price: " + stats.getMin()); System.out.println("Maximum price: " + stats.getMax()); System.out.println("Average price: " + stats.getAverage()); System.out.println("Total number of items: " + stats.getCount()); System.out.println("Total sum: " + stats.getSum()); } }
Tässä koodissa luodaan tuotehintojen lista ja muunnetaan se numeeriseksi virraksi. Metodi Collectors.summarizingInt(Integer::intValue) kerää tilastotiedot ja tallentaa ne IntSummaryStatistics-olioon. Tämän jälkeen käytetään metodeja getMin(), getMax(), getAverage(), getCount() ja getSum() tarvittavien arvojen hakemiseen.
Lisämenetelmät
Metodi combine() yhdistää kaksi tilasto-oliota. Tämä on hyödyllistä, kun dataa käsitellään useassa säikeessä tai kun tilastoja yhdistetään eri lähteistä.
Metodi accept() lisää manuaalisesti arvoja tilasto-olioon, mikä on hyödyllistä, kun dataa päivitetään dynaamisesti.
Main.java
1234567891011121314151617181920212223package com.example; import java.util.IntSummaryStatistics; public class Main { public static void main(String[] args) { IntSummaryStatistics stats1 = new IntSummaryStatistics(); stats1.accept(1500); stats1.accept(2500); IntSummaryStatistics stats2 = new IntSummaryStatistics(); stats2.accept(3500); stats2.accept(4500); stats1.combine(stats2); System.out.println("Minimum price: " + stats1.getMin()); System.out.println("Maximum price: " + stats1.getMax()); System.out.println("Average price: " + stats1.getAverage()); System.out.println("Total number of items: " + stats1.getCount()); System.out.println("Total sum: " + stats1.getSum()); } }
Tässä esimerkissä luodaan kaksi IntSummaryStatistics-oliota, joihin kumpaankin lisätään arvoja käyttämällä accept()-metodia. combine()-metodi yhdistää sitten molempien olioiden tilastotiedot, päivittäen kokonaismäärän (count), summan (sum) sekä pienimmän ja suurimman arvon (min/max values).
Tämän seurauksena stats1 sisältää nyt kaikkien lukujen yhdistetyt tilastotiedot, jotka tulostetaan konsoliin.
1. Mitä luokkaa käytetään int-arvojen tilastojen keräämiseen Stream API:ssa?
2. Mikä menetelmä lisää arvon IntSummaryStatistics-olioon?
3. Mikä menetelmä yhdistää kaksi IntSummaryStatistics-oliota?
Kiitos palautteestasi!