Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Abrufen von Stream-Zusammenfassungsmetriken mit der SummaryStatistics()-Methode | Terminaloperationen in der Stream-API
Stream-API

bookAbrufen von Stream-Zusammenfassungsmetriken mit der SummaryStatistics()-Methode

Bei der Verarbeitung von Daten ist es häufig erforderlich, statistische Kennzahlen wie Summe, Durchschnitt, Minimum, Maximum und Elementanzahl zu berechnen.

Sie haben bereits gelernt, wie man die Minimal- und Maximalwerte in einem Stream findet, aber es gibt eine Methode, die all diese Statistiken auf einmal sammelt. Die Java Stream API stellt eine spezielle Methode namens summaryStatistics() bereit, die das Abrufen von Gesamtstatistiken aus numerischen Streams vereinfacht.

Methode summaryStatistics()

Die Stream API bietet auch spezialisierte numerische Streams: IntStream, LongStream und DoubleStream. Diese funktionieren wie reguläre Streams, sind jedoch für bestimmte primitive Datentypen optimiert.

Jeder dieser numerischen Streams enthält eine summaryStatistics()-Methode, die eine Instanz von IntSummaryStatistics, LongSummaryStatistics oder DoubleSummaryStatistics zurückgibt. Diese Objekte enthalten wichtige statistische Kennzahlen wie Anzahl, Summe, Minimum, Maximum und Durchschnitt.

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

Durch den Aufruf von summaryStatistics() auf einem numerischen Stream können Sie schnell statistische Daten über dessen Werte erfassen und analysieren.

Wichtige Methoden

In Java werden die Klassen IntSummaryStatistics, LongSummaryStatistics und DoubleSummaryStatistics verwendet, um Statistiken über numerische Daten zu sammeln. Sie bieten eine Reihe von Methoden zur Extraktion wichtiger statistischer Kennzahlen.

Praktisches Beispiel

In einem Online-Shop müssen Produktpreise analysiert werden, um den Mindest- und Höchstpreis, den Durchschnittspreis sowie die Gesamtanzahl der Artikel zu bestimmen.

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 diesem Code wird eine Liste von Produktpreisen erstellt und in einen numerischen Stream umgewandelt. Die Methode Collectors.summarizingInt(Integer::intValue) sammelt statistische Daten und speichert sie in einem IntSummaryStatistics-Objekt. Anschließend werden die Methoden getMin(), getMax(), getAverage(), getCount() und getSum() verwendet, um die benötigten Werte zu extrahieren.

Zusätzliche Methoden

Die Methode combine() verbindet zwei Statistikobjekte. Dies ist nützlich bei der Verarbeitung von Daten in mehreren Threads oder beim Zusammenführen von Statistiken aus verschiedenen Quellen.

Die Methode accept() fügt einem Statistikobjekt manuell Werte hinzu, was hilfreich ist, um Daten dynamisch zu aktualisieren.

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 diesem Beispiel werden zwei IntSummaryStatistics-Objekte erstellt, denen jeweils Werte mit der Methode accept() hinzugefügt werden. Die Methode combine() fasst anschließend die Statistiken beider Objekte zusammen und aktualisiert die Gesamt-Anzahl, Summe sowie die Minimal-/Maximalwerte.

Dadurch enthält stats1 nun die kombinierten Statistiken aller Zahlen, die anschließend auf der Konsole ausgegeben werden.

1. Welche Klasse wird im Stream API verwendet, um Statistiken für int-Werte zu erfassen?

2. Welche Methode fügt einem IntSummaryStatistics-Objekt einen Wert hinzu?

3. Welche Methode kombiniert zwei IntSummaryStatistics-Objekte?

question mark

Welche Klasse wird im Stream API verwendet, um Statistiken für int-Werte zu erfassen?

Select the correct answer

question mark

Welche Methode fügt einem IntSummaryStatistics-Objekt einen Wert hinzu?

Select the correct answer

question mark

Welche Methode kombiniert zwei IntSummaryStatistics-Objekte?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 9

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

What is the difference between summaryStatistics() and using individual methods like min() or max()?

Can you explain how to use summaryStatistics() with DoubleStream or LongStream?

How does the combine() method work in parallel processing scenarios?

Awesome!

Completion rate improved to 2.33

bookAbrufen von Stream-Zusammenfassungsmetriken mit der SummaryStatistics()-Methode

Swipe um das Menü anzuzeigen

Bei der Verarbeitung von Daten ist es häufig erforderlich, statistische Kennzahlen wie Summe, Durchschnitt, Minimum, Maximum und Elementanzahl zu berechnen.

Sie haben bereits gelernt, wie man die Minimal- und Maximalwerte in einem Stream findet, aber es gibt eine Methode, die all diese Statistiken auf einmal sammelt. Die Java Stream API stellt eine spezielle Methode namens summaryStatistics() bereit, die das Abrufen von Gesamtstatistiken aus numerischen Streams vereinfacht.

Methode summaryStatistics()

Die Stream API bietet auch spezialisierte numerische Streams: IntStream, LongStream und DoubleStream. Diese funktionieren wie reguläre Streams, sind jedoch für bestimmte primitive Datentypen optimiert.

Jeder dieser numerischen Streams enthält eine summaryStatistics()-Methode, die eine Instanz von IntSummaryStatistics, LongSummaryStatistics oder DoubleSummaryStatistics zurückgibt. Diese Objekte enthalten wichtige statistische Kennzahlen wie Anzahl, Summe, Minimum, Maximum und Durchschnitt.

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

Durch den Aufruf von summaryStatistics() auf einem numerischen Stream können Sie schnell statistische Daten über dessen Werte erfassen und analysieren.

Wichtige Methoden

In Java werden die Klassen IntSummaryStatistics, LongSummaryStatistics und DoubleSummaryStatistics verwendet, um Statistiken über numerische Daten zu sammeln. Sie bieten eine Reihe von Methoden zur Extraktion wichtiger statistischer Kennzahlen.

Praktisches Beispiel

In einem Online-Shop müssen Produktpreise analysiert werden, um den Mindest- und Höchstpreis, den Durchschnittspreis sowie die Gesamtanzahl der Artikel zu bestimmen.

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 diesem Code wird eine Liste von Produktpreisen erstellt und in einen numerischen Stream umgewandelt. Die Methode Collectors.summarizingInt(Integer::intValue) sammelt statistische Daten und speichert sie in einem IntSummaryStatistics-Objekt. Anschließend werden die Methoden getMin(), getMax(), getAverage(), getCount() und getSum() verwendet, um die benötigten Werte zu extrahieren.

Zusätzliche Methoden

Die Methode combine() verbindet zwei Statistikobjekte. Dies ist nützlich bei der Verarbeitung von Daten in mehreren Threads oder beim Zusammenführen von Statistiken aus verschiedenen Quellen.

Die Methode accept() fügt einem Statistikobjekt manuell Werte hinzu, was hilfreich ist, um Daten dynamisch zu aktualisieren.

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 diesem Beispiel werden zwei IntSummaryStatistics-Objekte erstellt, denen jeweils Werte mit der Methode accept() hinzugefügt werden. Die Methode combine() fasst anschließend die Statistiken beider Objekte zusammen und aktualisiert die Gesamt-Anzahl, Summe sowie die Minimal-/Maximalwerte.

Dadurch enthält stats1 nun die kombinierten Statistiken aller Zahlen, die anschließend auf der Konsole ausgegeben werden.

1. Welche Klasse wird im Stream API verwendet, um Statistiken für int-Werte zu erfassen?

2. Welche Methode fügt einem IntSummaryStatistics-Objekt einen Wert hinzu?

3. Welche Methode kombiniert zwei IntSummaryStatistics-Objekte?

question mark

Welche Klasse wird im Stream API verwendet, um Statistiken für int-Werte zu erfassen?

Select the correct answer

question mark

Welche Methode fügt einem IntSummaryStatistics-Objekt einen Wert hinzu?

Select the correct answer

question mark

Welche Methode kombiniert zwei IntSummaryStatistics-Objekte?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 9
some-alt