У цій програмі ви навчитеся перевіряти, чи містить масив задане значення в Kotlin.
Приклад 1: Перевірте, чи містить масив Int задане значення
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.") )
Коли ви запускаєте програму, результат буде:
3 знайдено.
У наведеній вище програмі ми маємо масив цілих чисел, що зберігається у змінній num. Так само номер, який потрібно знайти, зберігається у toFind.
Тепер ми використовуємо for-in
цикл для перебору всіх елементів num та перевірки індивідуально, якщо toFind дорівнює n чи ні.
Якщо так, ми встановлюємо знайдене true
та вирване з циклу. Якщо ні, ми переходимо до наступної ітерації.
Приклад 2: Перевірте, чи містить масив задане значення, використовуючи 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.") )
Коли ви запускаєте програму, результат буде:
7 не знайдено.
У наведеній вище програмі замість того, щоб використовувати цикл foreach, ми перетворюємо масив на an IntStream
і використовуємо його anyMatch()
метод.
anyMatch()
метод приймає предикат, вираз або функцію, яка повертає логічне значення. У нашому випадку предикат порівнює кожен елемент n у потоці з toFind і повертає true
або false
.
Якщо будь-який з елементів n повертається true
, знайдено також значення true
.
Приклад 3: Перевірте, чи містить масив задане значення для непримітивних типів
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.") )
Коли ви запускаєте програму, результат буде:
Чотири знайдено.
У наведеній вище програмі ми використовували не примітивний тип даних String
і використовували метод Arrays
s, stream()
щоб спочатку перетворити їх у потік і anyMatch()
перевірити, чи містить масив задане значення toFind.
Ось еквівалентний код Java: програма Java для перевірки, чи містить масив задане значення.