Hentning af Stream-Sammenfattende Målinger med SummaryStatistics()-Metoden
Ved behandling af data er det ofte nødvendigt at beregne statistiske målinger såsom sum, gennemsnit, minimum, maksimum og antal elementer.
Du har allerede lært, hvordan man finder minimums- og maksimumsværdier i en stream, men der findes en metode, der samler alle disse statistikker på én gang. Java Stream API tilbyder en dedikeret metode kaldet summaryStatistics(), som forenkler indhentning af samlede statistikker fra numeriske streams.
Metode summaryStatistics()
Stream API tilbyder også specialiserede numeriske streams: IntStream, LongStream og DoubleStream. Disse fungerer ligesom almindelige streams, men er optimeret til specifikke primitivtyper.
Hver af disse numeriske streams indeholder en summaryStatistics()-metode, som returnerer en instans af henholdsvis IntSummaryStatistics, LongSummaryStatistics eller DoubleSummaryStatistics. Disse objekter indeholder centrale statistiske målinger såsom count, sum, min, max og average.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Ved at anvende summaryStatistics() på en numerisk stream kan du hurtigt indsamle og analysere statistiske data om dens værdier.
Nøglemetoder
I Java anvendes klasserne IntSummaryStatistics, LongSummaryStatistics og DoubleSummaryStatistics til at indsamle statistik over numeriske data. De tilbyder en række metoder til udtræk af centrale statistiske målinger.
Praktisk eksempel
I en onlinebutik er der behov for at analysere produktpriser for at bestemme minimums- og maksimumspriser, gennemsnitspris samt samlet antal varer.
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()); } }
I denne kode oprettes en liste af produktpriser og konverteres til en numerisk stream. Metoden Collectors.summarizingInt(Integer::intValue) indsamler statistiske data og gemmer dem i et IntSummaryStatistics-objekt. Derefter anvendes metoderne getMin(), getMax(), getAverage(), getCount() og getSum() til at udtrække de nødvendige værdier.
Yderligere metoder
Metoden combine() sammenfletter to statistikobjekter. Dette er nyttigt ved behandling af data i flere tråde eller ved konsolidering af statistik fra forskellige kilder.
Metoden accept() tilføjer manuelt værdier til et statistikobjekt, hvilket er nyttigt til dynamisk opdatering af data.
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()); } }
I dette eksempel oprettes to IntSummaryStatistics objekter, som hver indeholder værdier, der tilføjes ved hjælp af metoden accept(). Metoden combine() samler derefter statistikkerne fra begge objekter og opdaterer det samlede antal, sum samt min/max-værdier.
Som resultat indeholder stats1 nu de samlede statistikker for alle tal, som derefter udskrives til konsollen.
1. Hvilken klasse bruges til at indsamle statistik for int-værdier i Stream API?
2. Hvilken metode tilføjer en værdi til et IntSummaryStatistics-objekt?
3. Hvilken metode sammenfletter to IntSummaryStatistics-objekter?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.33
Hentning af Stream-Sammenfattende Målinger med SummaryStatistics()-Metoden
Stryg for at vise menuen
Ved behandling af data er det ofte nødvendigt at beregne statistiske målinger såsom sum, gennemsnit, minimum, maksimum og antal elementer.
Du har allerede lært, hvordan man finder minimums- og maksimumsværdier i en stream, men der findes en metode, der samler alle disse statistikker på én gang. Java Stream API tilbyder en dedikeret metode kaldet summaryStatistics(), som forenkler indhentning af samlede statistikker fra numeriske streams.
Metode summaryStatistics()
Stream API tilbyder også specialiserede numeriske streams: IntStream, LongStream og DoubleStream. Disse fungerer ligesom almindelige streams, men er optimeret til specifikke primitivtyper.
Hver af disse numeriske streams indeholder en summaryStatistics()-metode, som returnerer en instans af henholdsvis IntSummaryStatistics, LongSummaryStatistics eller DoubleSummaryStatistics. Disse objekter indeholder centrale statistiske målinger såsom count, sum, min, max og average.
IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();
Ved at anvende summaryStatistics() på en numerisk stream kan du hurtigt indsamle og analysere statistiske data om dens værdier.
Nøglemetoder
I Java anvendes klasserne IntSummaryStatistics, LongSummaryStatistics og DoubleSummaryStatistics til at indsamle statistik over numeriske data. De tilbyder en række metoder til udtræk af centrale statistiske målinger.
Praktisk eksempel
I en onlinebutik er der behov for at analysere produktpriser for at bestemme minimums- og maksimumspriser, gennemsnitspris samt samlet antal varer.
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()); } }
I denne kode oprettes en liste af produktpriser og konverteres til en numerisk stream. Metoden Collectors.summarizingInt(Integer::intValue) indsamler statistiske data og gemmer dem i et IntSummaryStatistics-objekt. Derefter anvendes metoderne getMin(), getMax(), getAverage(), getCount() og getSum() til at udtrække de nødvendige værdier.
Yderligere metoder
Metoden combine() sammenfletter to statistikobjekter. Dette er nyttigt ved behandling af data i flere tråde eller ved konsolidering af statistik fra forskellige kilder.
Metoden accept() tilføjer manuelt værdier til et statistikobjekt, hvilket er nyttigt til dynamisk opdatering af data.
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()); } }
I dette eksempel oprettes to IntSummaryStatistics objekter, som hver indeholder værdier, der tilføjes ved hjælp af metoden accept(). Metoden combine() samler derefter statistikkerne fra begge objekter og opdaterer det samlede antal, sum samt min/max-værdier.
Som resultat indeholder stats1 nu de samlede statistikker for alle tal, som derefter udskrives til konsollen.
1. Hvilken klasse bruges til at indsamle statistik for int-værdier i Stream API?
2. Hvilken metode tilføjer en værdi til et IntSummaryStatistics-objekt?
3. Hvilken metode sammenfletter to IntSummaryStatistics-objekter?
Tak for dine kommentarer!