Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Berechnung von Stream-Statistiken mit Count(), Max() und Min() | Terminaloperationen in der Stream-API
Stream-API

bookBerechnung von Stream-Statistiken mit Count(), Max() und Min()

In der Programmierung ist es häufig erforderlich, die Anzahl der Elemente in einer Sammlung zu bestimmen oder die Minimal- und Maximalwerte unter ihnen zu finden.

Allerdings schreiben Programmierer in der Regel keine eigenen Algorithmen für diese Aufgaben, da bereits eingebaute Methoden existieren. Die Stream-API stellt praktische Methoden für die Arbeit mit Sammlungen bereit und ermöglicht Berechnungen an Streamelementen.

Zu diesen Methoden gehören count(), max() und min(), die dabei helfen, die Anzahl der Elemente zu bestimmen sowie die größten und kleinsten Werte zu finden.

Die Methode count()

Die Methode count() gibt die Anzahl der Elemente in einem Stream zurück. Sie wird häufig verwendet, wenn die Größe einer Sammlung nach dem Filtern von Daten bestimmt werden soll.

long count();

Erfordert keine Parameter und gibt einen primitiven long-Typ zurück.

Praktisches Beispiel

In einem Online-Shop soll die Anzahl der Produkte mit einem Rabatt von mehr als 20 % ermittelt werden.

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }

In diesem Beispiel wählt die Methode filter() Produkte mit einem Rabatt von mehr als 20% aus, und count() ermittelt deren Anzahl.

Die Methode max()

Die Methode max() gibt das maximale Element in einem Stream basierend auf einem angegebenen Comparator zurück. Ist der Stream leer, wird Optional.empty() zurückgegeben.

Optional<T> max(Comparator<? super T> comparator);

Praktisches Beispiel

Das teuerste Produkt in einem Online-Shop ermitteln, um es als Premium-Produkt zu bewerben.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }

In diesem Code vergleicht Comparator.comparing(Product::getPrice) Produkte anhand ihres Preises, und max() wählt das teuerste Produkt aus.

Die Methode min()

Die Methode min() ähnelt max(), gibt jedoch das kleinste Element in einem Stream basierend auf einem angegebenen Comparator zurück.

Optional<T> min(Comparator<? super T> comparator);

Praktisches Beispiel

Das Produkt mit dem niedrigsten Lagerbestand ermitteln, um den Bedarf an Nachbestellung zu bewerten.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }

Dieser Code ermittelt das Produkt mit dem niedrigsten Lagerbestand mithilfe der Methode min() und Comparator.comparing(Product::getStock).

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 8

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Awesome!

Completion rate improved to 2.33

bookBerechnung von Stream-Statistiken mit Count(), Max() und Min()

Swipe um das Menü anzuzeigen

In der Programmierung ist es häufig erforderlich, die Anzahl der Elemente in einer Sammlung zu bestimmen oder die Minimal- und Maximalwerte unter ihnen zu finden.

Allerdings schreiben Programmierer in der Regel keine eigenen Algorithmen für diese Aufgaben, da bereits eingebaute Methoden existieren. Die Stream-API stellt praktische Methoden für die Arbeit mit Sammlungen bereit und ermöglicht Berechnungen an Streamelementen.

Zu diesen Methoden gehören count(), max() und min(), die dabei helfen, die Anzahl der Elemente zu bestimmen sowie die größten und kleinsten Werte zu finden.

Die Methode count()

Die Methode count() gibt die Anzahl der Elemente in einem Stream zurück. Sie wird häufig verwendet, wenn die Größe einer Sammlung nach dem Filtern von Daten bestimmt werden soll.

long count();

Erfordert keine Parameter und gibt einen primitiven long-Typ zurück.

Praktisches Beispiel

In einem Online-Shop soll die Anzahl der Produkte mit einem Rabatt von mehr als 20 % ermittelt werden.

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 15.0), new Product("Smartphone", 25.0), new Product("Tablet", 30.0) ); long discountedProducts = products.stream() .filter(product -> product.getDiscount() > 20.0) .count(); System.out.println("Number of products with more than 20% discount: " + discountedProducts); } } class Product { private String name; private double discount; public Product(String name, double discount) { this.name = name; this.discount = discount; } public double getDiscount() { return discount; } }

In diesem Beispiel wählt die Methode filter() Produkte mit einem Rabatt von mehr als 20% aus, und count() ermittelt deren Anzahl.

Die Methode max()

Die Methode max() gibt das maximale Element in einem Stream basierend auf einem angegebenen Comparator zurück. Ist der Stream leer, wird Optional.empty() zurückgegeben.

Optional<T> max(Comparator<? super T> comparator);

Praktisches Beispiel

Das teuerste Produkt in einem Online-Shop ermitteln, um es als Premium-Produkt zu bewerben.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 1200.0), new Product("Smartphone", 800.0), new Product("Tablet", 600.0) ); Optional<Product> mostExpensiveProduct = products.stream() .max(Comparator.comparing(Product::getPrice)); mostExpensiveProduct.ifPresent(product -> System.out.println("Most expensive product: " + product.getName() + " - $" + product.getPrice()) ); } } class Product { private String name; private double price; public Product(String name, double price) { this.name = name; this.price = price; } public double getPrice() { return price; } public String getName() { return name; } }

In diesem Code vergleicht Comparator.comparing(Product::getPrice) Produkte anhand ihres Preises, und max() wählt das teuerste Produkt aus.

Die Methode min()

Die Methode min() ähnelt max(), gibt jedoch das kleinste Element in einem Stream basierend auf einem angegebenen Comparator zurück.

Optional<T> min(Comparator<? super T> comparator);

Praktisches Beispiel

Das Produkt mit dem niedrigsten Lagerbestand ermitteln, um den Bedarf an Nachbestellung zu bewerten.

Main.java

Main.java

copy
12345678910111213141516171819202122232425262728293031323334353637383940
package com.example; import java.util.List; import java.util.Optional; import java.util.Comparator; public class Main { public static void main(String[] args) { List<Product> products = List.of( new Product("Laptop", 5), new Product("Smartphone", 0), new Product("Tablet", 2) ); Optional<Product> leastStockProduct = products.stream() .min(Comparator.comparing(Product::getStock)); leastStockProduct.ifPresent(product -> System.out.println("Product with the lowest stock: " + product.getName() + " - " + product.getStock() + " units") ); } } class Product { private String name; private int stock; public Product(String name, int stock) { this.name = name; this.stock = stock; } public int getStock() { return stock; } public String getName() { return name; } }

Dieser Code ermittelt das Produkt mit dem niedrigsten Lagerbestand mithilfe der Methode min() und Comparator.comparing(Product::getStock).

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 8
some-alt