Program Kotlin na kontrolu, či pole obsahuje danú hodnotu

V tomto programe sa naučíte skontrolovať, či pole obsahuje danú hodnotu v Kotline.

Príklad 1: Skontrolujte, či pole Int obsahuje danú hodnotu

 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.") )

Po spustení programu bude výstup:

 3 sa nachádza.

Vo vyššie uvedenom programe máme pole celých čísel uložených v premennej num. Rovnako je vyhľadávané číslo uložené v priečinku toFind.

Teraz použijeme for-inslučku na iteráciu cez všetky prvky num a individuálne skontrolujeme, či sa toFind rovná n alebo nie.

Ak áno, nastavili sme nájdené truea vymaníme sa zo slučky. Ak nie, prejdeme na ďalšiu iteráciu.

Príklad 2: Skontrolujte, či pole obsahuje danú hodnotu pomocou Streamu

 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.") )

Po spustení programu bude výstup:

 7 sa nenašiel.

Vo vyššie uvedenom programe namiesto použitia foreach slučky konvertujeme pole na IntStreama použijeme jeho anyMatch()metódu.

anyMatch()metóda vezme predikát, výraz alebo funkciu, ktorá vráti boolovskú hodnotu. V našom prípade predikát porovnáva každý prvok n v prúde s toFind a vracia truealebo false.

Ak sa vráti niektorý z prvkov n true, je nájdený tiež nastavený na true.

Príklad 3: Skontrolujte, či pole obsahuje zadanú hodnotu pre neprimitívne typy

 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.") )

Po spustení programu bude výstup:

 Štyri sa našli.

Vo vyššie uvedenom programe, ktoré sme použili non-primitívne dátový typ Stringa používa Arrays, s stream()metódu najprv previesť prúdu a anyMatch()skontrolovať, či pole obsahuje danú hodnotu tofind.

Tu je ekvivalentný kód Java: Program Java na kontrolu, či pole obsahuje danú hodnotu.

Zaujímavé články...