In dit programma leer je controleren of een array een bepaalde waarde in Java bevat.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java-arrays
- Java-gegevenstypen (primitief)
Voorbeeld 1: Controleer of Int Array een bepaalde waarde bevat
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."); ) )
Uitvoer
3 is gevonden.
In het bovenstaande programma hebben we een reeks gehele getallen opgeslagen in variabele num. Evenzo wordt het nummer dat moet worden gevonden, opgeslagen in toFind.
Nu gebruiken we een for-each-lus om alle elementen van num te doorlopen en afzonderlijk te controleren of toFind gelijk is aan n of niet.
Zo ja, dan zetten we gevonden in true
en breken we uit de lus. Zo niet, dan gaan we naar de volgende iteratie.
Voorbeeld 2: controleer met Stream of een array een bepaalde waarde bevat
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."); ) )
Uitvoer
7 is niet gevonden.
In het bovenstaande programma, in plaats van een for-each-lus te gebruiken, converteren we de array naar een IntStream
en gebruiken we zijn anyMatch()
methode.
anyMatch()
methode heeft een predikaat, een uitdrukking of een functie die een booleaanse waarde retourneert. In ons geval vergelijkt het predikaat elk element n in de stroom met toFind en retourneert true
of false
.
Als een van de elementen n terugkeert true
, wordt found ook ingesteld op true
.
Voorbeeld 3: controleer of een array een bepaalde waarde bevat voor niet-primitieve typen
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."); ) )
Uitvoer
Vier zijn gevonden.
In het bovenstaande programma hebben we een niet-primitief gegevenstype String
gebruikt Arrays
en de stream()
methode van gebruikt om het eerst naar een stream anyMatch()
te converteren en om te controleren of de array de gegeven waarde toFind bevat.