НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
452 of 1310 menu

Функция dropLastWhile

Функция dropLastWhile удаляет элементы с конца коллекции до тех пор, пока выполняется заданное условие (предикат). Функция принимает в параметр predicate лямбда-выражение с условием, которое проверяется для каждого элемента. Удаление прекращается при первом невыполнении условия.

Импорт

// Функция доступна без импорта

Синтаксис

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

Пример

Удалим элементы с конца списка чисел, пока они больше 2:

val numbers = listOf(1, 2, 3, 4, 5, 2, 1) val res = numbers.dropLastWhile { it > 2 } println(res)

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

List<Int> [1, 2, 3, 4, 5, 2]

Пример

Удалим элементы с конца массива символов, пока они не равны 'c':

val chars = arrayOf('a', 'b', 'c', 'd', 'e') val res = chars.dropLastWhile { it != 'c' } println(res)

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

List<Char> ['a', 'b', 'c']

Пример

Удалим элементы с конца множества, пока их длина больше 3:

val words = setOf("apple", "banana", "kiwi", "pear", "grape") val res = words.dropLastWhile { it.length > 3 } println(res)

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

List<String> ['apple', 'banana', 'kiwi', 'pear']

Пример

Удалим элементы с конца Map, пока значение больше 20:

val map = mapOf("a" to 10, "b" to 20, "c" to 30, "d" to 40) val res = map.dropLastWhile { it.value > 20 } println(res)

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

List<Entry<String, Int>> [a=10, b=20, c=30]

Для каких типов коллекций работает

Функция dropLastWhile доступна для:

  • Array - массивов
  • List - списков
  • Set - множеств
  • Map - ассоциативных массивов
  • Iterable - всех коллекций, реализующих интерфейс Iterable

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

  • функцию drop,
    которая удаляет первые N элементов коллекции
  • функцию dropLast,
    которая удаляет последние N элементов коллекции
  • функцию dropWhile,
    которая удаляет элементы с начала по условию
  • функцию takeLastWhile,
    которая берет элементы с конца по условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить