Функция dropWhile
Функция dropWhile возвращает коллекцию, содержащую все элементы
исходной коллекции, кроме первых элементов, которые удовлетворяют
заданному условию (предикату). Функция проверяет элементы с начала
коллекции и пропускает их, пока условие истинно. Как только встречается
элемент, не удовлетворяющий условию, функция возвращает все оставшиеся
элементы, включая этот элемент.
Импорт
import kotlin.collections.dropWhile
Синтаксис
// Для List, Set, Array и других коллекций
inline fun <T> Iterable<T>.dropWhile(
predicate: (T) -> Boolean
): List<T>
// Для Array
inline fun <T> Array<T>.dropWhile(
predicate: (T) -> Boolean
): List<T>
// Для Map
inline fun <K, V> Map<out K, V>.dropWhile(
predicate: (Entry<K, V>) -> Boolean
): List<Entry<K, V>>
Типы коллекций
Функция dropWhile работает со следующими типами коллекций:
Array- массивыList- спискиSet- множестваMap- словари (работает с записями Entry)Iterable- любые итерируемые коллекцииSequence- последовательности
Пример
Удалим начальные элементы из списка чисел, которые меньше 3:
val numbers = listOf(1, 2, 3, 4, 5, 1, 2)
val res = numbers.dropWhile { it < 3 }
println(res)
Результат выполнения кода:
List [3, 4, 5, 1, 2]
Пример
Удалим начальные элементы из массива символов, которые не являются цифрами:
val chars = arrayOf('a', 'b', '1', '2', 'c', 'd')
val res = chars.dropWhile { it.isLetter() }
println(res)
Результат выполнения кода:
List ['1', '2', 'c', 'd']
Пример
Удалим начальные записи из словаря, где ключ начинается с 'a':
val map = mapOf("apple" to 1, "apricot" to 2, "banana" to 3, "cherry" to 4)
val res = map.dropWhile { it.key.startsWith("a") }
println(res)
Результат выполнения кода:
List [banana=3, cherry=4]
Пример
Удалим начальные элементы из множества, пока они четные:
val numbersSet = setOf(2, 4, 6, 7, 8, 9, 10)
val res = numbersSet.dropWhile { it % 2 == 0 }
println(res)
Результат выполнения кода:
List [7, 8, 9, 10]
Смотрите также
-
функцию
drop,
которая удаляет заданное количество элементов с начала коллекции -
функцию
dropLastWhile,
которая удаляет элементы с конца коллекции по условию -
функцию
takeWhile,
которая возвращает начальные элементы, удовлетворяющие условию -
функцию
filter,
которая фильтрует все элементы коллекции по условию