Selles programmis õpite kontrollima, kas massiiv sisaldab Kotlinis antud väärtust.
Näide 1: kontrollige, kas Int Array sisaldab antud väärtust
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.") )
Programmi käivitamisel on väljund järgmine:
3 on leitud.
Ülaltoodud programmis on meil täisarvude massiiv, mis on salvestatud muutujasse num. Samamoodi on leiduv number salvestatud kaustaFind.
Nüüd kasutame for-in
tsüklit kõigi num-elementide itereerimiseks ja kontrollime eraldi, kas toFind on võrdne n-ga või mitte.
Kui jah, siis true
otsustasime leida ja murda silmus. Kui ei, siis liigume järgmise iteratsiooni juurde.
Näide 2: kontrollige, kas massiiv sisaldab antud väärtust, kasutades voogu
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.") )
Programmi käivitamisel on väljund järgmine:
7 ei leitud.
Ülaltoodud programmis teisendame massiivi foreach-i asemel ahelaks IntStream
ja kasutame selle anyMatch()
meetodit.
anyMatch()
meetod võtab predikaadi, avaldise või funktsiooni, mis tagastab tõeväärtuse. Meie puhul võrdleb predikaat voos olevaid elemente n funktsiooniga ToFind ja tagastab true
või false
.
Kui mõni element n naaseb true
, on leitud väärtuseks true
samuti leitud .
Näide 3: kontrollige, kas massiiv sisaldab mitteprimitiivsete tüüpide jaoks antud väärtust
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.") )
Programmi käivitamisel on väljund järgmine:
Leiti neli.
Eespool programmi oleme kasutanud mitte primitiivne andmetüüp String
ja kasutatud Arrays
's stream()
meetod kõigepealt teisendada see oja ja anyMatch()
kontrollida, kas massiiv sisaldab antud raha toFind.
Siin on samaväärne Java-kood: Java-programm, et kontrollida, kas massiiv sisaldab antud väärtust.