Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kontrol af Streamelementer Mod en Betingelse med allMatch() | Terminale Operationer i Stream API'et
Stream API

bookKontrol af Streamelementer Mod en Betingelse med allMatch()

Når du arbejder med datastreams, har du ofte behov for at kontrollere, om elementer opfylder bestemte betingelser. For eksempel kan du have brug for at verificere, at alle varer i en indkøbskurv er på lager, at mindst én vare er nedsat, eller at der ikke er annullerede ordrer.

For at håndtere disse situationer tilbyder Stream API tre nyttige metoder: allMatch(), anyMatch() og noneMatch(). Disse metoder gør det muligt hurtigt at kontrollere, om elementerne i en stream opfylder et givet predikat.

allMatch()-metoden

Metoden allMatch() kontrollerer, om alle elementer i en stream opfylder et givet predikat. Hvis mindst ét element ikke opfylder betingelsen, returnerer metoden false.

boolean allMatch(Predicate<? super T> predicate)

Denne metode tager et predikat—en funktion, der returnerer en boolean—og anvender det på hvert element i streamen. Hvis alle elementer opfylder betingelsen, returnerer den true; ellers returnerer den false.

Praktisk eksempel

I en onlinebutik er der gratis fragt, hvis alle varer i kurven koster mere end $10. Du skal kontrollere, om gratis fragt gælder for den aktuelle ordre.

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."); } } }

I denne kode oprettes en liste over varepriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) kontrollerer, om alle varer koster mere end $10. Hvis de gør, vises en meddelelse om vellykket gratis fragt; ellers vises en meddelelse om, at ikke alle varer opfylder betingelsen.

anyMatch() Metode

Metoden anyMatch() kontrollerer, om mindst ét element i en stream opfylder et givet prædikat. Hvis mindst ét element opfylder betingelsen, returnerer metoden true og stopper behandlingen.

boolean anyMatch(Predicate<? super T> predicate)

Denne metode modtager et predikat og anvender det på hvert element i streamen. Så snart den finder et matchende element, returnerer den true og stopper udførelsen.

Praktisk eksempel

En onlinebutik tilbyder et VIP-program, hvis mindst ét produkt i kurven koster mere end $500. Det er nødvendigt at kontrollere, om kunden opfylder kravene til 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."); } } }

Her kontrollerer metoden anyMatch(price -> price > 500), om der er mindst én vare med en pris over $500. Hvis det er tilfældet, bliver hasExpensiveItem sat til true, og en besked om kvalifikation til VIP-status udskrives; ellers vises en besked om, at der ikke er nogen dyre varer i kurven.

noneMatch()-metoden

Metoden noneMatch() kontrollerer, om ingen af elementerne i en stream opfylder en given prædikat. Hvis ingen elementer matcher betingelsen, returnerer metoden true.

boolean noneMatch(Predicate<? super T> predicate)

Denne metode tager en prædikat og anvender den på hvert element i streamen. Hvis ingen elementer opfylder betingelsen, returnerer den true; ellers returnerer den false.

Praktisk eksempel

En onlinebutik tillader ikke varer med en pris under nul. Du skal kontrollere, om der er sådanne varer i kurven.

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."); } } }

I dette eksempel kontrollerer noneMatch(price -> price < 0), om der ikke er nogen varer, der er prissat under $0. Hvis alle varer har en gyldig pris, udskrives en besked, der bekræfter dette; ellers vises en besked, der angiver tilstedeværelsen af en vare med en ugyldig pris.

1. Hvilken metode kontrollerer, om mindst ét element i strømmen opfylder en betingelse?

2. Hvilken metode bør anvendes for at sikre, at der ikke er nogen værdier mindre end nul i en liste?

question mark

Hvilken metode kontrollerer, om mindst ét element i strømmen opfylder en betingelse?

Select the correct answer

question mark

Hvilken metode bør anvendes for at sikre, at der ikke er nogen værdier mindre end nul i en liste?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 12

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you provide code examples for each of these methods?

What are some common use cases for allMatch(), anyMatch(), and noneMatch()?

How do these methods improve performance compared to manual iteration?

Awesome!

Completion rate improved to 2.33

bookKontrol af Streamelementer Mod en Betingelse med allMatch()

Stryg for at vise menuen

Når du arbejder med datastreams, har du ofte behov for at kontrollere, om elementer opfylder bestemte betingelser. For eksempel kan du have brug for at verificere, at alle varer i en indkøbskurv er på lager, at mindst én vare er nedsat, eller at der ikke er annullerede ordrer.

For at håndtere disse situationer tilbyder Stream API tre nyttige metoder: allMatch(), anyMatch() og noneMatch(). Disse metoder gør det muligt hurtigt at kontrollere, om elementerne i en stream opfylder et givet predikat.

allMatch()-metoden

Metoden allMatch() kontrollerer, om alle elementer i en stream opfylder et givet predikat. Hvis mindst ét element ikke opfylder betingelsen, returnerer metoden false.

boolean allMatch(Predicate<? super T> predicate)

Denne metode tager et predikat—en funktion, der returnerer en boolean—og anvender det på hvert element i streamen. Hvis alle elementer opfylder betingelsen, returnerer den true; ellers returnerer den false.

Praktisk eksempel

I en onlinebutik er der gratis fragt, hvis alle varer i kurven koster mere end $10. Du skal kontrollere, om gratis fragt gælder for den aktuelle ordre.

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."); } } }

I denne kode oprettes en liste over varepriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) kontrollerer, om alle varer koster mere end $10. Hvis de gør, vises en meddelelse om vellykket gratis fragt; ellers vises en meddelelse om, at ikke alle varer opfylder betingelsen.

anyMatch() Metode

Metoden anyMatch() kontrollerer, om mindst ét element i en stream opfylder et givet prædikat. Hvis mindst ét element opfylder betingelsen, returnerer metoden true og stopper behandlingen.

boolean anyMatch(Predicate<? super T> predicate)

Denne metode modtager et predikat og anvender det på hvert element i streamen. Så snart den finder et matchende element, returnerer den true og stopper udførelsen.

Praktisk eksempel

En onlinebutik tilbyder et VIP-program, hvis mindst ét produkt i kurven koster mere end $500. Det er nødvendigt at kontrollere, om kunden opfylder kravene til 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."); } } }

Her kontrollerer metoden anyMatch(price -> price > 500), om der er mindst én vare med en pris over $500. Hvis det er tilfældet, bliver hasExpensiveItem sat til true, og en besked om kvalifikation til VIP-status udskrives; ellers vises en besked om, at der ikke er nogen dyre varer i kurven.

noneMatch()-metoden

Metoden noneMatch() kontrollerer, om ingen af elementerne i en stream opfylder en given prædikat. Hvis ingen elementer matcher betingelsen, returnerer metoden true.

boolean noneMatch(Predicate<? super T> predicate)

Denne metode tager en prædikat og anvender den på hvert element i streamen. Hvis ingen elementer opfylder betingelsen, returnerer den true; ellers returnerer den false.

Praktisk eksempel

En onlinebutik tillader ikke varer med en pris under nul. Du skal kontrollere, om der er sådanne varer i kurven.

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."); } } }

I dette eksempel kontrollerer noneMatch(price -> price < 0), om der ikke er nogen varer, der er prissat under $0. Hvis alle varer har en gyldig pris, udskrives en besked, der bekræfter dette; ellers vises en besked, der angiver tilstedeværelsen af en vare med en ugyldig pris.

1. Hvilken metode kontrollerer, om mindst ét element i strømmen opfylder en betingelse?

2. Hvilken metode bør anvendes for at sikre, at der ikke er nogen værdier mindre end nul i en liste?

question mark

Hvilken metode kontrollerer, om mindst ét element i strømmen opfylder en betingelse?

Select the correct answer

question mark

Hvilken metode bør anvendes for at sikre, at der ikke er nogen værdier mindre end nul i en liste?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 12
some-alt