Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Kontrollera Strömelement Mot Ett Villkor Med allMatch() | Terminaloperationer i Stream API
Stream API

bookKontrollera Strömelement Mot Ett Villkor Med allMatch()

Vid arbete med datastreams behöver du ofta kontrollera om element uppfyller vissa villkor. Till exempel kan du vilja verifiera att alla varor i en kundvagn finns i lager, att åtminstone en vara är rabatterad, eller att det inte finns några avbokade beställningar.

För att hantera dessa fall tillhandahåller Stream API tre användbara metoder: allMatch(), anyMatch() och noneMatch(). Dessa metoder gör det möjligt att snabbt kontrollera om element i en stream uppfyller ett givet predikat.

allMatch()-metoden

Metoden allMatch() kontrollerar om alla element i en stream uppfyller ett givet predikat. Om minst ett element inte uppfyller villkoret returnerar metoden false.

boolean allMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat—en funktion som returnerar ett boolean—och tillämpar det på varje element i strömmen. Om alla element uppfyller villkoret returneras true; annars returneras false.

Praktiskt exempel

I en webbutik erbjuds fri frakt om alla varor i varukorgen kostar mer än $10. Det behöver kontrolleras om fri frakt gäller för den aktuella beställningen.

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 denna kod skapar du en lista med artikelpriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) kontrollerar om alla artiklar kostar mer än $10. Om de gör det visas ett meddelande om lyckad fri frakt; annars visas ett meddelande som indikerar att inte alla artiklar kvalificerar sig.

anyMatch()-metoden

Metoden anyMatch() kontrollerar om minst ett element i en stream uppfyller ett givet predikat. Om minst ett element uppfyller villkoret returnerar metoden true och slutar bearbeta.

boolean anyMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat och tillämpar det på varje element i strömmen. Så snart den hittar ett matchande element returnerar den true och stoppar exekveringen.

Praktiskt exempel

En webbutik erbjuder ett VIP-program om minst en vara i varukorgen kostar mer än $500. Du behöver kontrollera om kunden kvalificerar sig för 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."); } } }

Här kontrollerar metoden anyMatch(price -> price > 500) om det finns minst en vara med ett pris över $500. Om en sådan hittas blir hasExpensiveItem true, och ett meddelande om att kvalificera sig för VIP-status skrivs ut; annars visas ett meddelande som indikerar att det inte finns några dyra varor i varukorgen.

noneMatch()-metoden

Metoden noneMatch() kontrollerar om inga av elementen i en stream uppfyller ett givet predikat. Om inga element matchar villkoret, returnerar metoden true.

boolean noneMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat och tillämpar det på varje element i strömmen. Om inga element uppfyller villkoret, returneras true; annars returneras false.

Praktiskt exempel

En webbutik tillåter inte varor med pris under noll. Du behöver kontrollera om det finns några sådana varor i varukorgen.

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 detta exempel kontrollerar noneMatch(price -> price < 0) om det inte finns några artiklar med pris under $0. Om alla artiklar har ett giltigt pris skrivs ett meddelande ut som bekräftar detta; annars visas ett meddelande som indikerar att det finns en artikel med ett ogiltigt pris.

1. Vilken metod kontrollerar om minst ett element i streamen uppfyller ett villkor?

2. Vilken metod bör användas för att säkerställa att det inte finns några värden mindre än noll i en lista?

question mark

Vilken metod kontrollerar om minst ett element i streamen uppfyller ett villkor?

Select the correct answer

question mark

Vilken metod bör användas för att säkerställa att det inte finns några värden mindre än noll i en lista?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 12

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.33

bookKontrollera Strömelement Mot Ett Villkor Med allMatch()

Svep för att visa menyn

Vid arbete med datastreams behöver du ofta kontrollera om element uppfyller vissa villkor. Till exempel kan du vilja verifiera att alla varor i en kundvagn finns i lager, att åtminstone en vara är rabatterad, eller att det inte finns några avbokade beställningar.

För att hantera dessa fall tillhandahåller Stream API tre användbara metoder: allMatch(), anyMatch() och noneMatch(). Dessa metoder gör det möjligt att snabbt kontrollera om element i en stream uppfyller ett givet predikat.

allMatch()-metoden

Metoden allMatch() kontrollerar om alla element i en stream uppfyller ett givet predikat. Om minst ett element inte uppfyller villkoret returnerar metoden false.

boolean allMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat—en funktion som returnerar ett boolean—och tillämpar det på varje element i strömmen. Om alla element uppfyller villkoret returneras true; annars returneras false.

Praktiskt exempel

I en webbutik erbjuds fri frakt om alla varor i varukorgen kostar mer än $10. Det behöver kontrolleras om fri frakt gäller för den aktuella beställningen.

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 denna kod skapar du en lista med artikelpriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) kontrollerar om alla artiklar kostar mer än $10. Om de gör det visas ett meddelande om lyckad fri frakt; annars visas ett meddelande som indikerar att inte alla artiklar kvalificerar sig.

anyMatch()-metoden

Metoden anyMatch() kontrollerar om minst ett element i en stream uppfyller ett givet predikat. Om minst ett element uppfyller villkoret returnerar metoden true och slutar bearbeta.

boolean anyMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat och tillämpar det på varje element i strömmen. Så snart den hittar ett matchande element returnerar den true och stoppar exekveringen.

Praktiskt exempel

En webbutik erbjuder ett VIP-program om minst en vara i varukorgen kostar mer än $500. Du behöver kontrollera om kunden kvalificerar sig för 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."); } } }

Här kontrollerar metoden anyMatch(price -> price > 500) om det finns minst en vara med ett pris över $500. Om en sådan hittas blir hasExpensiveItem true, och ett meddelande om att kvalificera sig för VIP-status skrivs ut; annars visas ett meddelande som indikerar att det inte finns några dyra varor i varukorgen.

noneMatch()-metoden

Metoden noneMatch() kontrollerar om inga av elementen i en stream uppfyller ett givet predikat. Om inga element matchar villkoret, returnerar metoden true.

boolean noneMatch(Predicate<? super T> predicate)

Denna metod tar ett predikat och tillämpar det på varje element i strömmen. Om inga element uppfyller villkoret, returneras true; annars returneras false.

Praktiskt exempel

En webbutik tillåter inte varor med pris under noll. Du behöver kontrollera om det finns några sådana varor i varukorgen.

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 detta exempel kontrollerar noneMatch(price -> price < 0) om det inte finns några artiklar med pris under $0. Om alla artiklar har ett giltigt pris skrivs ett meddelande ut som bekräftar detta; annars visas ett meddelande som indikerar att det finns en artikel med ett ogiltigt pris.

1. Vilken metod kontrollerar om minst ett element i streamen uppfyller ett villkor?

2. Vilken metod bör användas för att säkerställa att det inte finns några värden mindre än noll i en lista?

question mark

Vilken metod kontrollerar om minst ett element i streamen uppfyller ett villkor?

Select the correct answer

question mark

Vilken metod bör användas för att säkerställa att det inte finns några värden mindre än noll i en lista?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 12
some-alt