In questo programma imparerai a controllare se un array contiene un dato valore in Kotlin.
Esempio 1: verificare se Int Array contiene un determinato valore
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.") )
Quando esegui il programma, l'output sarà:
3 si trova.
Nel programma precedente, abbiamo un array di numeri interi memorizzati nella variabile num. Allo stesso modo, il numero da trovare viene memorizzato in toFind.
Ora, usiamo un for-in
ciclo per scorrere tutti gli elementi di num e controlliamo individualmente se toFind è uguale a no.
Se sì, impostiamo trovato true
e interrompiamo il ciclo. In caso contrario, passiamo alla successiva iterazione.
Esempio 2: controlla se l'array contiene un valore dato usando 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.") )
Quando esegui il programma, l'output sarà:
7 non è stato trovato.
Nel programma precedente, invece di usare un ciclo foreach, convertiamo l'array in un IntStream
e usiamo il suo anyMatch()
metodo.
anyMatch()
metodo accetta un predicato, un'espressione o una funzione che restituisce un valore booleano. Nel nostro caso, il predicato confronta ogni elemento n nel flusso con toFind e restituisce true
o false
.
Se uno qualsiasi degli elementi n ritorna true
, anche trovato viene impostato su true
.
Esempio 3: controlla se array contiene un dato valore per i tipi non primitivi
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.") )
Quando esegui il programma, l'output sarà:
Viene trovato quattro.
Nel programma sopra, abbiamo usato un tipo di dati non primitivo String
e abbiamo usato Arrays
il stream()
metodo di per convertirlo prima in un flusso e anyMatch()
per controllare se l'array contiene il valore dato toFind.
Ecco il codice Java equivalente: programma Java per verificare se l'array contiene un dato valore.