Program Kotlin pro kontrolu, zda pole obsahuje danou hodnotu

V tomto programu se naučíte zkontrolovat, zda pole obsahuje danou hodnotu v Kotlin.

Příklad 1: Zkontrolujte, zda Int Array obsahuje danou 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.") )

Když spustíte program, výstup bude:

 3 je nalezen.

Ve výše uvedeném programu máme pole celých čísel uložených v proměnné num. Podobně je číslo, které má být nalezeno, uloženo v toFind.

Nyní použijeme for-insmyčku k iteraci všemi prvky num a jednotlivě zkontrolujeme, zda se toFind rovná n nebo ne.

Pokud ano, nastavili jsme truesmyčku found to and break from the loop. Pokud ne, přejdeme na další iteraci.

Příklad 2: Zkontrolujte, zda pole obsahuje danou hodnotu pomocí 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.") )

Když spustíte program, výstup bude:

 7 nebyl nalezen.

Ve výše uvedeném programu namísto použití smyčky foreach převedeme pole na IntStreama použijeme jeho anyMatch()metodu.

anyMatch()metoda přebírá predikát, výraz nebo funkci, která vrací logickou hodnotu. V našem případě predikát porovnává každý prvek n v proudu s toFind a vrací truenebo false.

Pokud se některý z prvků n vrátí true, nalezený je nastaven truetaké.

Příklad 3: Zkontrolujte, zda pole obsahuje danou hodnotu pro neprimitivní 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.") )

Když spustíte program, výstup bude:

 Čtyři se nacházejí.

Ve výše uvedeném programu, které jsme použili non-primitivní datový typ Stringa používá Arrays‚s stream()metodu nejprve převést proudu a anyMatch()zkontrolovat, zda pole obsahuje danou hodnotu tofind.

Zde je ekvivalentní kód Java: Program Java ke kontrole, zda pole obsahuje danou hodnotu.

Zajímavé články...