Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Het Ophalen van Samenvattende Streamstatistieken met de summaryStatistics()-Methode | Sectie
Stream-API in Java

bookHet Ophalen van Samenvattende Streamstatistieken met de summaryStatistics()-Methode

Veeg om het menu te tonen

Bij het verwerken van gegevens is het vaak noodzakelijk om statistische kengetallen te berekenen, zoals som, gemiddelde, minimum, maximum en elementenaantal.

Je hebt al geleerd hoe je de minimum- en maximumwaarden in een stream kunt vinden, maar er is een methode die al deze statistieken in één keer verzamelt. De Java Stream API biedt een speciale methode genaamd summaryStatistics(), die het ophalen van algemene statistieken uit numerieke streams vereenvoudigt.

Methode summaryStatistics()

De Stream API biedt ook gespecialiseerde numerieke streams: IntStream, LongStream en DoubleStream. Deze werken net als gewone streams, maar zijn geoptimaliseerd voor specifieke primitieve types.

Elk van deze numerieke streams bevat een summaryStatistics()-methode, die respectievelijk een instantie van IntSummaryStatistics, LongSummaryStatistics of DoubleSummaryStatistics retourneert. Deze objecten bevatten belangrijke statistische kengetallen, zoals aantal, som, min, max en gemiddelde.

IntSummaryStatistics summaryStatistics();
LongSummaryStatistics summaryStatistics();
DoubleSummaryStatistics summaryStatistics();

Door summaryStatistics() aan te roepen op een numerieke stream, kun je snel en eenvoudig statistische gegevens over de waarden verzamelen en analyseren.

Belangrijke methoden

In Java worden de klassen IntSummaryStatistics, LongSummaryStatistics en DoubleSummaryStatistics gebruikt om statistieken te verzamelen over numerieke gegevens. Zij bieden een reeks methoden voor het verkrijgen van belangrijke statistische kengetallen.

Praktisch voorbeeld

In een online winkel is het nodig om productprijzen te analyseren om de minimum- en maximumprijzen, de gemiddelde prijs en het totaal aantal artikelen te bepalen.

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()); } }

In deze code wordt een lijst van productprijzen aangemaakt en omgezet naar een numerieke stream. De methode Collectors.summarizingInt(Integer::intValue) verzamelt statistische gegevens en slaat deze op in een IntSummaryStatistics-object. Vervolgens worden de methoden getMin(), getMax(), getAverage(), getCount() en getSum() gebruikt om de benodigde waarden op te halen.

Aanvullende methoden

De methode combine() voegt twee statistiekobjecten samen. Dit is nuttig bij het verwerken van gegevens in meerdere threads of bij het consolideren van statistieken uit verschillende bronnen.

De methode accept() voegt handmatig waarden toe aan een statistiekobject, wat handig is voor het dynamisch bijwerken van gegevens.

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()); } }

In dit voorbeeld maak je twee IntSummaryStatistics objecten aan, elk met waarden toegevoegd via de accept()-methode. De combine()-methode voegt vervolgens de statistieken van beide objecten samen, waarbij het totale aantal, de som en de min/max-waarden worden bijgewerkt.

Hierdoor bevat stats1 nu de gecombineerde statistieken van alle getallen, die vervolgens naar de console worden geprint.

1. Welke klasse wordt gebruikt om statistieken te verzamelen voor int-waarden in de Stream API?

2. Welke methode voegt een waarde toe aan een IntSummaryStatistics-object?

3. Welke methode voegt twee IntSummaryStatistics-objecten samen?

question mark

Welke klasse wordt gebruikt om statistieken te verzamelen voor int-waarden in de Stream API?

Select the correct answer

question mark

Welke methode voegt een waarde toe aan een IntSummaryStatistics-object?

Select the correct answer

question mark

Welke methode voegt twee IntSummaryStatistics-objecten samen?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 35

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 1. Hoofdstuk 35
some-alt