I dette program lærer du at kontrollere, om en matrix indeholder en given værdi i Java.
For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:
- Java Arrays
- Java-datatyper (primitive)
Eksempel 1: Kontroller, om Int Array indeholder en given værdi
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."); ) )
Produktion
3 er fundet.
I ovenstående program har vi en række heltal gemt i variabel num. Ligeledes gemmes det antal, der skal findes, i toFind.
Nu bruger vi en for-hver løkke til at gentage alle elementerne i num og kontrollere individuelt, om toFind er lig med n eller ikke.
Hvis ja, indstiller vi fundet til true
og bryder fra sløjfen. Hvis ikke, går vi videre til næste iteration.
Eksempel 2: Kontroller, om en matrix indeholder en given værdi ved hjælp af 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."); ) )
Produktion
7 findes ikke.
I det ovennævnte program konverterer vi arrayet til en i stedet for at bruge en for-hver løkke IntStream
og bruger dens anyMatch()
metode.
anyMatch()
metode tager et prædikat, et udtryk eller en funktion, der returnerer en boolsk værdi. I vores tilfælde sammenligner prædikatet hvert element n i strømmen med toFind og returnerer true
eller false
.
Hvis noget af elementet n vender tilbage true
, er fundet også indstillet til true
.
Eksempel 3: Kontroller, om en matrix indeholder en given værdi 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."); ) )
Produktion
Fire findes.
I ovenstående program, har vi brugt en ikke-primitiv datatype String
og brugt Arrays
's stream()
metode til først konvertere det til et vandløb, og anyMatch()
at kontrollere, om array indeholder den givne værdi tofind.