I dette programmet lærer du å sjekke om en matrise inneholder en gitt verdi i Java.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java Arrays
- Java datatyper (primitive)
Eksempel 1: Sjekk om Int Array inneholder en gitt verdi
public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 3; boolean found = false; for (int n : num) ( if (n == toFind) ( found = true; break; ) ) if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Produksjon
3 er funnet.
I programmet ovenfor har vi en rekke heltall lagret i variabel num. Likeledes lagres antallet som skal finnes i toFind.
Nå bruker vi en for hver sløyfe til å gjenta gjennom alle elementene i num og sjekke individuelt om toFind er lik n eller ikke.
Hvis ja, setter vi funnet til true
og bryter fra løkken. Hvis ikke, går vi til neste iterasjon.
Eksempel 2: Sjekk om en matrise inneholder gitt verdi ved hjelp av Stream
import java.util.stream.IntStream; public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 7; boolean found = IntStream.of(num).anyMatch(n -> n == toFind); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Produksjon
7 er ikke funnet.
I det ovennevnte programmet, i stedet for å bruke en for-hver løkke, konverterer vi matrisen til en IntStream
og bruker anyMatch()
metoden.
anyMatch()
metoden tar et predikat, et uttrykk eller en funksjon som returnerer en boolsk verdi. I vårt tilfelle sammenligner predikatet hvert element n i strømmen med toFind og returnerer true
eller false
.
Hvis noe av elementet n returnerer true
, blir funnet også satt til true
.
Eksempel 3: Sjekk om en matrise inneholder en gitt verdi for ikke-primitive typer
import java.util.Arrays; public class Contains ( public static void main(String() args) ( String() strings = ("One", "Two", "Three", "Four", "Five"); String toFind = "Four"; boolean found = Arrays.stream(strings).anyMatch(t -> t.equals(toFind)); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Produksjon
Fire er funnet.
I programmet ovenfor, har vi brukt en ikke-primitiv datatype String
og brukte Arrays
sin stream()
metode for å først konvertere den til en bekk og anyMatch()
for å sjekke om matrisen inneholder den gitte verdien tofind.