Het Berekenen van Streamstatistieken met Count(), Max() en Min()
In de programmeerwereld is het vaak nodig om het aantal elementen in een collectie te tellen of de minimum- en maximumwaarden te bepalen.
Toch schrijven programmeurs meestal geen eigen algoritmes voor deze taken, omdat er al ingebouwde methoden bestaan. De Stream API biedt handige methoden voor het werken met collecties, waarmee berekeningen op streamelementen mogelijk zijn.
Tot deze methoden behoren count(), max() en min(), die helpen 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 wordt vaak gebruikt wanneer de grootte van een collectie na het filteren van gegevens bepaald moet worden.
long count();
Neemt 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 max()-methode 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 te promoten als een premium product.
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 bepaalt 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.
Awesome!
Completion rate improved to 2.33
Het Berekenen van Streamstatistieken met Count(), Max() en Min()
Veeg om het menu te tonen
In de programmeerwereld is het vaak nodig om het aantal elementen in een collectie te tellen of de minimum- en maximumwaarden te bepalen.
Toch schrijven programmeurs meestal geen eigen algoritmes voor deze taken, omdat er al ingebouwde methoden bestaan. De Stream API biedt handige methoden voor het werken met collecties, waarmee berekeningen op streamelementen mogelijk zijn.
Tot deze methoden behoren count(), max() en min(), die helpen 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 wordt vaak gebruikt wanneer de grootte van een collectie na het filteren van gegevens bepaald moet worden.
long count();
Neemt 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 max()-methode 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 te promoten als een premium product.
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 bepaalt het product met de laagste voorraad met behulp van de min() methode en Comparator.comparing(Product::getStock).
Bedankt voor je feedback!