I det här programmet lär du dig att kontrollera om en matris innehåller ett visst värde i Java.
För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:
- Java Arrays
- Java-datatyper (primitiva)
Exempel 1: Kontrollera om Int Array innehåller ett visst värde
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 hittas.
I ovanstående program har vi en rad heltal lagrade i variabelnum. På samma sätt lagras numret som ska hittas i toFind.
Nu använder vi en för varje slinga för att itera igenom alla element i num och kontrollera individuellt om toFind är lika med n eller inte.
Om ja, ställer vi in på true
och bryter från slingan. Om inte, går vi vidare till nästa iteration.
Exempel 2: Kontrollera om en matris innehåller ett visst värde med hjälp 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."); ) )
Produktion
7 hittades inte.
I programmet ovan, istället för att använda en för varje slinga, konverterar vi matrisen till en IntStream
och använder dess anyMatch()
metod.
anyMatch()
metoden tar ett predikat, ett uttryck eller en funktion som returnerar ett booleskt värde. I vårt fall jämför predikatet varje element n i strömmen till toFind och returnerar true
eller false
.
Om något av elementet n returnerar true
, är det också inställt att hitta true
.
Exempel 3: Kontrollera om en matris innehåller ett givet värde för icke-primitiva 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
Fyra finns.
I ovanstående program, har vi använt en icke-primitiv datatyp String
och används Arrays
: s stream()
metod att först konvertera den till en ström och anyMatch()
för att kontrollera om arrayen innehåller det givna värdet tofind.