Kotlini programm, et kontrollida, kas massiiv sisaldab antud väärtust

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-intsüklit kõigi num-elementide itereerimiseks ja kontrollime eraldi, kas toFind on võrdne n-ga või mitte.

Kui jah, siis trueotsustasime 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 IntStreamja 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 truevõi false.

Kui mõni element n naaseb true, on leitud väärtuseks truesamuti 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 Stringja 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.

Huvitavad Artiklid...