Функция dropWhile

Функция dropWhile возвращает коллекцию, содержащую все элементы исходной коллекции, кроме первых элементов, которые удовлетворяют заданному условию (предикату). Функция проверяет элементы с начала коллекции и пропускает их, пока условие истинно. Как только встречается элемент, не удовлетворяющий условию, функция возвращает все оставшиеся элементы, включая этот элемент.

Импорт

kotlinimport kotlin.collections.dropWhile

Синтаксис

kotlin// Для List, Set, Array и других коллекций
inline fun <T> Iterable<T>.dropWhile(
  predicate: (T) -> Boolean
): List<T>
kotlin// Для Array
inline fun <T> Array<T>.dropWhile(
  predicate: (T) -> Boolean
): List<T>
kotlin// Для Map
inline fun <K, V> Map<out K, V>.dropWhile(
  predicate: (Entry<K, V>) -> Boolean
): List<Entry<K, V>>

Типы коллекций

Функция dropWhile работает со следующими типами коллекций:

Пример

Удалим начальные элементы из списка чисел, которые меньше 3:

kotlinval numbers = listOf(1, 2, 3, 4, 5, 1, 2)
val res = numbers.dropWhile { it < 3 }
println(res)

Результат выполнения кода:

kotlinList [3, 4, 5, 1, 2]

Пример

Удалим начальные элементы из массива символов, которые не являются цифрами:

kotlinval chars = arrayOf('a', 'b', '1', '2', 'c', 'd')
val res = chars.dropWhile { it.isLetter() }
println(res)

Результат выполнения кода:

kotlinList ['1', '2', 'c', 'd']

Пример

Удалим начальные записи из словаря, где ключ начинается с 'a':

kotlinval map = mapOf("apple" to 1, "apricot" to 2, "banana" to 3, "cherry" to 4)
val res = map.dropWhile { it.key.startsWith("a") }
println(res)

Результат выполнения кода:

kotlinList [banana=3, cherry=4]

Пример

Удалим начальные элементы из множества, пока они четные:

kotlinval numbersSet = setOf(2, 4, 6, 7, 8, 9, 10)
val res = numbersSet.dropWhile { it % 2 == 0 }
println(res)

Результат выполнения кода:

kotlinList [7, 8, 9, 10]

Смотрите также

  • функцию drop,
    которая удаляет заданное количество элементов с начала коллекции
  • функцию dropLastWhile,
    которая удаляет элементы с конца коллекции по условию
  • функцию takeWhile,
    которая возвращает начальные элементы, удовлетворяющие условию
  • функцию filter,
    которая фильтрует все элементы коллекции по условию