In dit programma leer je controleren of een array een bepaalde waarde bevat in Kotlin.
Voorbeeld 1: Controleer of Int Array een bepaalde waarde bevat
fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 3 var found = false for (n in num) ( if (n == toFind) ( found = true break ) ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Wanneer u het programma uitvoert, is de 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-in
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 of de array de opgegeven waarde bevat met Stream
import java.util.stream.IntStream fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 7 val found = IntStream.of(*num).anyMatch ( n -> n == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Wanneer u het programma uitvoert, is de uitvoer:
7 is niet gevonden.
In het bovenstaande programma, in plaats van een foreach-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 array een bepaalde waarde bevat voor niet-primitieve typen
import java.util.Arrays fun main(args: Array) ( val strings = arrayOf("One", "Two", "Three", "Four", "Five") val toFind = "Four" val found = Arrays.stream(strings).anyMatch ( t -> t == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Wanneer u het programma uitvoert, is de 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.
Hier is de equivalente Java-code: Java-programma om te controleren of de array een bepaalde waarde bevat.