Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Stream-Elementen Controleren op een Voorwaarde met allMatch() | Terminale Operaties in de Stream API
Stream-API

bookStream-Elementen Controleren op een Voorwaarde met allMatch()

Bij het werken met datastromen is het vaak nodig om te controleren of elementen aan bepaalde voorwaarden voldoen. Zo kun je bijvoorbeeld willen verifiëren dat alle items in een winkelwagen op voorraad zijn, dat er minstens één item is met korting, of dat er geen geannuleerde bestellingen zijn.

Om deze gevallen te behandelen, biedt de Stream API drie nuttige methoden: allMatch(), anyMatch() en noneMatch(). Met deze methoden kun je snel controleren of stream-elementen voldoen aan een bepaald predicaat.

allMatch()-methode

De allMatch()-methode controleert of alle elementen in een stream voldoen aan een opgegeven predicaat. Als ten minste één element niet aan de voorwaarde voldoet, retourneert de methode false.

boolean allMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat—een functie die een boolean retourneert—en past deze toe op elk element in de stream. Als alle elementen aan de voorwaarde voldoen, retourneert het true; anders retourneert het false.

Praktisch voorbeeld

In een webwinkel is gratis verzending beschikbaar als alle artikelen in het winkelmandje meer dan $10 kosten. Het is nodig om te controleren of gratis verzending van toepassing is op de huidige bestelling.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(15, 20, 12, 9); // Item prices boolean freeShipping = prices.stream().allMatch(price -> price > 10); if (freeShipping) { System.out.println("Free shipping applied."); } else { System.out.println("Not all items qualify for free shipping."); } } }

In deze code maak je een lijst van artikelprijzen: [15, 20, 12, 9]. De methode allMatch(price -> price > 10) controleert of alle artikelen meer dan $10 kosten. Als dat zo is, wordt een bericht over succesvolle gratis verzending weergegeven; anders verschijnt een melding dat niet alle artikelen in aanmerking komen.

anyMatch() Methode

De anyMatch()-methode controleert of ten minste één element in een stream voldoet aan een opgegeven predicaat. Als ten minste één element aan de voorwaarde voldoet, retourneert de methode true en stopt de verwerking.

boolean anyMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat en past dit toe op elk element in de stream. Zodra het een overeenkomend element vindt, retourneert het true en stopt de uitvoering.

Praktisch Voorbeeld

Een online winkel biedt een VIP-programma aan als er ten minste één artikel in het winkelmandje meer dan $500 kost. U moet controleren of de klant in aanmerking komt voor de VIP-status.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(530, 300, 40, 120); // Item prices boolean hasExpensiveItem = prices.stream().anyMatch(price -> price > 500); if (hasExpensiveItem) { System.out.println("Customer qualifies for VIP status."); } else { System.out.println("No expensive items in the cart."); } } }

Hier controleert de methode anyMatch(price -> price > 500) of er ten minste één item is met een prijs boven de $500. Indien gevonden, wordt hasExpensiveItem true en verschijnt er een bericht over het in aanmerking komen voor de VIP-status; anders verschijnt er een bericht dat er geen dure items in het winkelwagentje zijn.

noneMatch()-methode

De noneMatch()-methode controleert of geen van de elementen in een stream voldoet aan een opgegeven predicaat. Als geen enkel element aan de voorwaarde voldoet, retourneert de methode true.

boolean noneMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat en past dit toe op elk element in de stream. Als geen enkel element aan de voorwaarde voldoet, retourneert het true; anders retourneert het false.

Praktisch voorbeeld

Een webwinkel staat geen artikelen toe met een prijs onder nul. Je moet controleren of er dergelijke artikelen in het winkelmandje zitten.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3000, 0); // Item prices boolean noFreeItems = prices.stream().noneMatch(price -> price < 0); if (noFreeItems) { System.out.println("All items have valid prices."); } else { System.out.println("The cart contains an item with a zero price."); } } }

In dit voorbeeld controleert noneMatch(price -> price < 0) of er geen items zijn met een prijs onder de $0. Als alle items een geldige prijs hebben, wordt een melding ter bevestiging weergegeven; anders verschijnt er een melding die aangeeft dat er een item met een ongeldige prijs is.

1. Welke methode controleert of ten minste één element in de stream aan een voorwaarde voldoet?

2. Welke methode moet je gebruiken om te garanderen dat er geen waarden kleiner dan nul in een lijst staan?

question mark

Welke methode controleert of ten minste één element in de stream aan een voorwaarde voldoet?

Select the correct answer

question mark

Welke methode moet je gebruiken om te garanderen dat er geen waarden kleiner dan nul in een lijst staan?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 12

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Awesome!

Completion rate improved to 2.33

bookStream-Elementen Controleren op een Voorwaarde met allMatch()

Veeg om het menu te tonen

Bij het werken met datastromen is het vaak nodig om te controleren of elementen aan bepaalde voorwaarden voldoen. Zo kun je bijvoorbeeld willen verifiëren dat alle items in een winkelwagen op voorraad zijn, dat er minstens één item is met korting, of dat er geen geannuleerde bestellingen zijn.

Om deze gevallen te behandelen, biedt de Stream API drie nuttige methoden: allMatch(), anyMatch() en noneMatch(). Met deze methoden kun je snel controleren of stream-elementen voldoen aan een bepaald predicaat.

allMatch()-methode

De allMatch()-methode controleert of alle elementen in een stream voldoen aan een opgegeven predicaat. Als ten minste één element niet aan de voorwaarde voldoet, retourneert de methode false.

boolean allMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat—een functie die een boolean retourneert—en past deze toe op elk element in de stream. Als alle elementen aan de voorwaarde voldoen, retourneert het true; anders retourneert het false.

Praktisch voorbeeld

In een webwinkel is gratis verzending beschikbaar als alle artikelen in het winkelmandje meer dan $10 kosten. Het is nodig om te controleren of gratis verzending van toepassing is op de huidige bestelling.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(15, 20, 12, 9); // Item prices boolean freeShipping = prices.stream().allMatch(price -> price > 10); if (freeShipping) { System.out.println("Free shipping applied."); } else { System.out.println("Not all items qualify for free shipping."); } } }

In deze code maak je een lijst van artikelprijzen: [15, 20, 12, 9]. De methode allMatch(price -> price > 10) controleert of alle artikelen meer dan $10 kosten. Als dat zo is, wordt een bericht over succesvolle gratis verzending weergegeven; anders verschijnt een melding dat niet alle artikelen in aanmerking komen.

anyMatch() Methode

De anyMatch()-methode controleert of ten minste één element in een stream voldoet aan een opgegeven predicaat. Als ten minste één element aan de voorwaarde voldoet, retourneert de methode true en stopt de verwerking.

boolean anyMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat en past dit toe op elk element in de stream. Zodra het een overeenkomend element vindt, retourneert het true en stopt de uitvoering.

Praktisch Voorbeeld

Een online winkel biedt een VIP-programma aan als er ten minste één artikel in het winkelmandje meer dan $500 kost. U moet controleren of de klant in aanmerking komt voor de VIP-status.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(530, 300, 40, 120); // Item prices boolean hasExpensiveItem = prices.stream().anyMatch(price -> price > 500); if (hasExpensiveItem) { System.out.println("Customer qualifies for VIP status."); } else { System.out.println("No expensive items in the cart."); } } }

Hier controleert de methode anyMatch(price -> price > 500) of er ten minste één item is met een prijs boven de $500. Indien gevonden, wordt hasExpensiveItem true en verschijnt er een bericht over het in aanmerking komen voor de VIP-status; anders verschijnt er een bericht dat er geen dure items in het winkelwagentje zijn.

noneMatch()-methode

De noneMatch()-methode controleert of geen van de elementen in een stream voldoet aan een opgegeven predicaat. Als geen enkel element aan de voorwaarde voldoet, retourneert de methode true.

boolean noneMatch(Predicate<? super T> predicate)

Deze methode neemt een predicaat en past dit toe op elk element in de stream. Als geen enkel element aan de voorwaarde voldoet, retourneert het true; anders retourneert het false.

Praktisch voorbeeld

Een webwinkel staat geen artikelen toe met een prijs onder nul. Je moet controleren of er dergelijke artikelen in het winkelmandje zitten.

Main.java

Main.java

copy
1234567891011121314151617
package com.example; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> prices = List.of(1500, 2000, 3000, 0); // Item prices boolean noFreeItems = prices.stream().noneMatch(price -> price < 0); if (noFreeItems) { System.out.println("All items have valid prices."); } else { System.out.println("The cart contains an item with a zero price."); } } }

In dit voorbeeld controleert noneMatch(price -> price < 0) of er geen items zijn met een prijs onder de $0. Als alle items een geldige prijs hebben, wordt een melding ter bevestiging weergegeven; anders verschijnt er een melding die aangeeft dat er een item met een ongeldige prijs is.

1. Welke methode controleert of ten minste één element in de stream aan een voorwaarde voldoet?

2. Welke methode moet je gebruiken om te garanderen dat er geen waarden kleiner dan nul in een lijst staan?

question mark

Welke methode controleert of ten minste één element in de stream aan een voorwaarde voldoet?

Select the correct answer

question mark

Welke methode moet je gebruiken om te garanderen dat er geen waarden kleiner dan nul in een lijst staan?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 12
some-alt