Java-program til at kontrollere, om en matrix indeholder en given værdi

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 trueog 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 IntStreamog 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 trueeller 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 Stringog 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.

Interessante artikler...