Java-programma om te controleren of een array een bepaalde waarde bevat

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 trueen 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 IntStreamen 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 trueof 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 Stringgebruikt Arraysen 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.

Interessante artikelen...