Berechnung 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
123456789101112131415161718192021222324252627282930313233package 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
12345678910111213141516171819202122232425262728293031323334353637383940package 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
12345678910111213141516171819202122232425262728293031323334353637383940package 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).
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.33
Berechnung 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
123456789101112131415161718192021222324252627282930313233package 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
12345678910111213141516171819202122232425262728293031323334353637383940package 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
12345678910111213141516171819202122232425262728293031323334353637383940package 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).
Danke für Ihr Feedback!