Программа Kotlin для проверки, содержит ли массив заданное значение

В этой программе вы научитесь проверять, содержит ли массив заданное значение в Kotlin.

Пример 1. Проверьте, содержит ли Int Array заданное значение

 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 мы преобразовываем массив в объект 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 для проверки, содержит ли массив заданное значение.

Интересные статьи...