Sjekke Strømelementer Mot en Betingelse Med allMatch()
Når du arbeider med datastrømmer, er det ofte nødvendig å kontrollere om elementene oppfyller bestemte betingelser. For eksempel kan du ønske å verifisere at alle varer i en handlekurv er på lager, at minst én vare er rabattert, eller at det ikke finnes kansellerte ordre.
For å håndtere slike tilfeller tilbyr Stream API tre nyttige metoder: allMatch(), anyMatch() og noneMatch(). Disse metodene gjør det mulig å raskt kontrollere om elementene i en strøm tilfredsstiller et gitt predikat.
allMatch()-metoden
Metoden allMatch() kontrollerer om alle elementene i en strøm tilfredsstiller et gitt predikat. Hvis minst ett element ikke oppfyller betingelsen, returnerer metoden false.
boolean allMatch(Predicate<? super T> predicate)
Denne metoden tar en predikat—en funksjon som returnerer en boolean—og anvender den på hvert element i strømmen. Hvis alle elementene oppfyller betingelsen, returnerer den true; ellers returnerer den false.
Praktisk eksempel
I en nettbutikk er det gratis frakt dersom alle varer i handlekurven koster mer enn $10. Du må kontrollere om gratis frakt gjelder for den aktuelle bestillingen.
Main.java
1234567891011121314151617package 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 koden oppretter du en liste med varepriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) sjekker om alle varer koster mer enn $10. Hvis de gjør det, vises en melding om vellykket gratis frakt; ellers vises en melding som indikerer at ikke alle varer kvalifiserer.
anyMatch()-metoden
Metoden anyMatch() sjekker om minst ett element i en stream oppfyller et gitt predikat. Hvis minst ett element oppfyller betingelsen, returnerer metoden true og stopper behandlingen.
boolean anyMatch(Predicate<? super T> predicate)
Denne metoden tar et predikat og anvender det på hvert element i strømmen. Så snart den finner et matchende element, returnerer den true og stopper utførelsen.
Praktisk eksempel
En nettbutikk tilbyr et VIP-program dersom minst ett element i handlekurven koster mer enn $500. Du må sjekke om kunden kvalifiserer for VIP-status.
Main.java
1234567891011121314151617package 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 sjekker metoden anyMatch(price -> price > 500) om det finnes minst én vare med en pris over $500. Hvis det finnes, blir hasExpensiveItem satt til true, og en melding om kvalifisering til VIP-status skrives ut; ellers vises en melding som indikerer at det ikke finnes dyre varer i handlekurven.
noneMatch()-metoden
Metoden noneMatch() sjekker om ingen av elementene i en stream oppfyller et gitt predikat. Hvis ingen elementer oppfyller betingelsen, returnerer metoden true.
boolean noneMatch(Predicate<? super T> predicate)
Denne metoden tar et predikat og anvender det på hvert element i strømmen. Hvis ingen elementer oppfyller betingelsen, returnerer den true; ellers returnerer den false.
Praktisk eksempel
En nettbutikk tillater ikke varer med pris under null. Du må kontrollere om det finnes slike varer i handlekurven.
Main.java
1234567891011121314151617package 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 eksempelet sjekker noneMatch(price -> price < 0) om det ikke finnes noen varer med pris under $0. Hvis alle varer har en gyldig pris, vises en melding som bekrefter dette; ellers vises en melding som indikerer at det finnes en vare med ugyldig pris.
1. Hvilken metode sjekker om minst ett element i strømmen oppfyller en betingelse?
2. Hvilken metode bør du bruke for å sikre at det ikke finnes noen verdier mindre enn null i en liste?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.33
Sjekke Strømelementer Mot en Betingelse Med allMatch()
Sveip for å vise menyen
Når du arbeider med datastrømmer, er det ofte nødvendig å kontrollere om elementene oppfyller bestemte betingelser. For eksempel kan du ønske å verifisere at alle varer i en handlekurv er på lager, at minst én vare er rabattert, eller at det ikke finnes kansellerte ordre.
For å håndtere slike tilfeller tilbyr Stream API tre nyttige metoder: allMatch(), anyMatch() og noneMatch(). Disse metodene gjør det mulig å raskt kontrollere om elementene i en strøm tilfredsstiller et gitt predikat.
allMatch()-metoden
Metoden allMatch() kontrollerer om alle elementene i en strøm tilfredsstiller et gitt predikat. Hvis minst ett element ikke oppfyller betingelsen, returnerer metoden false.
boolean allMatch(Predicate<? super T> predicate)
Denne metoden tar en predikat—en funksjon som returnerer en boolean—og anvender den på hvert element i strømmen. Hvis alle elementene oppfyller betingelsen, returnerer den true; ellers returnerer den false.
Praktisk eksempel
I en nettbutikk er det gratis frakt dersom alle varer i handlekurven koster mer enn $10. Du må kontrollere om gratis frakt gjelder for den aktuelle bestillingen.
Main.java
1234567891011121314151617package 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 koden oppretter du en liste med varepriser: [15, 20, 12, 9]. Metoden allMatch(price -> price > 10) sjekker om alle varer koster mer enn $10. Hvis de gjør det, vises en melding om vellykket gratis frakt; ellers vises en melding som indikerer at ikke alle varer kvalifiserer.
anyMatch()-metoden
Metoden anyMatch() sjekker om minst ett element i en stream oppfyller et gitt predikat. Hvis minst ett element oppfyller betingelsen, returnerer metoden true og stopper behandlingen.
boolean anyMatch(Predicate<? super T> predicate)
Denne metoden tar et predikat og anvender det på hvert element i strømmen. Så snart den finner et matchende element, returnerer den true og stopper utførelsen.
Praktisk eksempel
En nettbutikk tilbyr et VIP-program dersom minst ett element i handlekurven koster mer enn $500. Du må sjekke om kunden kvalifiserer for VIP-status.
Main.java
1234567891011121314151617package 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 sjekker metoden anyMatch(price -> price > 500) om det finnes minst én vare med en pris over $500. Hvis det finnes, blir hasExpensiveItem satt til true, og en melding om kvalifisering til VIP-status skrives ut; ellers vises en melding som indikerer at det ikke finnes dyre varer i handlekurven.
noneMatch()-metoden
Metoden noneMatch() sjekker om ingen av elementene i en stream oppfyller et gitt predikat. Hvis ingen elementer oppfyller betingelsen, returnerer metoden true.
boolean noneMatch(Predicate<? super T> predicate)
Denne metoden tar et predikat og anvender det på hvert element i strømmen. Hvis ingen elementer oppfyller betingelsen, returnerer den true; ellers returnerer den false.
Praktisk eksempel
En nettbutikk tillater ikke varer med pris under null. Du må kontrollere om det finnes slike varer i handlekurven.
Main.java
1234567891011121314151617package 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 eksempelet sjekker noneMatch(price -> price < 0) om det ikke finnes noen varer med pris under $0. Hvis alle varer har en gyldig pris, vises en melding som bekrefter dette; ellers vises en melding som indikerer at det finnes en vare med ugyldig pris.
1. Hvilken metode sjekker om minst ett element i strømmen oppfyller en betingelse?
2. Hvilken metode bør du bruke for å sikre at det ikke finnes noen verdier mindre enn null i en liste?
Takk for tilbakemeldingene dine!