Het Berekenen van Streamstatistieken met Count(), Max() en Min()
Veeg om het menu te tonen
In de programmeerwereld is het vaak noodzakelijk om het aantal elementen in een collectie te tellen of de minimum- en maximumwaarden te bepalen.
Toch schrijven programmeurs doorgaans geen eigen algoritmen voor deze taken, omdat er al ingebouwde methoden beschikbaar zijn. De Stream API biedt handige methoden voor het werken met collecties, waarmee berekeningen op streamelementen kunnen worden uitgevoerd.
Tot deze methoden behoren count(), max() en min(), die het mogelijk maken het aantal elementen te bepalen en de grootste en kleinste waarden te vinden.
De count()-methode
De count()-methode geeft het aantal elementen in een stream terug. Deze methode wordt vaak gebruikt om de grootte van een collectie te bepalen na het filteren van gegevens.
long count();
Het vereist geen parameters en retourneert een primitief long type.
Praktisch Voorbeeld
In een online winkel is het nodig om het aantal producten met een korting van meer dan 20% te tellen.
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 dit voorbeeld selecteert de methode filter() producten met een korting van meer dan 20%, en bepaalt count() hun aantal.
De max()-methode
De methode max() retourneert het maximale element in een stream op basis van een opgegeven Comparator. Als de stream leeg is, retourneert deze Optional.empty().
Optional<T> max(Comparator<? super T> comparator);
Praktisch Voorbeeld
Zoek het duurste product in een online winkel om het als een premium product te promoten.
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 deze code vergelijkt Comparator.comparing(Product::getPrice) producten op prijs, en selecteert max() het duurste product.
De min()-methode
De min()-methode lijkt op max(), maar retourneert het kleinste element in een stream gebaseerd op een opgegeven Comparator.
Optional<T> min(Comparator<? super T> comparator);
Praktisch voorbeeld
Zoek het product met de laagste voorraad om de noodzaak voor herbevoorrading te beoordelen.
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; } }
Deze code identificeert het product met de laagste voorraad met behulp van de min() methode en Comparator.comparing(Product::getStock).
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.