I dette programmet lærer du å sjekke om en matrise inneholder en gitt verdi i Kotlin.
Eksempel 1: Sjekk om Int Array inneholder en gitt verdi
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.") )
Når du kjører programmet, vil utdataene være:
3 er funnet.
I programmet ovenfor har vi en rekke heltall lagret i variabel num. Likeledes lagres antallet som skal finnes i toFind.
Nå bruker vi en for-in
sløyfe til å gjenta gjennom alle elementene i num og sjekke individuelt om toFind er lik n eller ikke.
Hvis ja, setter vi funnet til true
og bryter fra løkken. Hvis ikke, går vi til neste iterasjon.
Eksempel 2: Sjekk om matrisen inneholder gitt verdi ved hjelp av 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.") )
Når du kjører programmet, vil utdataene være:
7 er ikke funnet.
I det ovennevnte programmet konverterer vi matrisen til en i stedet for å bruke en foreach-loop, IntStream
og bruker anyMatch()
metoden.
anyMatch()
metoden tar et predikat, et uttrykk eller en funksjon som returnerer en boolsk verdi. I vårt tilfelle sammenligner predikatet hvert element n i strømmen med toFind og returnerer true
eller false
.
Hvis noe av elementet n returnerer true
, blir funnet også satt til true
.
Eksempel 3: Sjekk om matrisen inneholder en gitt verdi for ikke-primitive typer
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.") )
Når du kjører programmet, vil utdataene være:
Fire er funnet.
I programmet ovenfor, har vi brukt en ikke-primitiv datatype String
og brukte Arrays
sin stream()
metode for å først konvertere den til en bekk og anyMatch()
for å sjekke om matrisen inneholder den gitte verdien tofind.
Her er ekvivalent Java-kode: Java-program for å sjekke om matrisen inneholder en gitt verdi.