Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hentning af Stream-Sammenfattende Målinger med SummaryStatistics()-Metoden | Terminale Operationer i Stream API'et
Stream API

bookHentning 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

Main.java

copy
1234567891011121314151617181920
package 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

Main.java

copy
1234567891011121314151617181920212223
package 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?

question mark

Hvilken klasse bruges til at indsamle statistik for int-værdier i Stream API?

Select the correct answer

question mark

Hvilken metode tilføjer en værdi til et IntSummaryStatistics-objekt?

Select the correct answer

question mark

Hvilken metode sammenfletter to IntSummaryStatistics-objekter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 9

Spørg AI

expand

Spørg AI

ChatGPT

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

bookHentning 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

Main.java

copy
1234567891011121314151617181920
package 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

Main.java

copy
1234567891011121314151617181920212223
package 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?

question mark

Hvilken klasse bruges til at indsamle statistik for int-værdier i Stream API?

Select the correct answer

question mark

Hvilken metode tilføjer en værdi til et IntSummaryStatistics-objekt?

Select the correct answer

question mark

Hvilken metode sammenfletter to IntSummaryStatistics-objekter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 9
some-alt