Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
487 of 1310 menu
В течении недели будет ОБНОВЛЕНИЕ УЧЕБНИКОВ PHP. Поменяется структура! Подробнее по ссылке.

Функция removeFirstOrNull

Функция removeFirstOrNull удаляет и возвращает первый элемент из изменяемой коллекции. Если коллекция пустая, функция возвращает null. Эта функция безопаснее чем removeFirst, которая выбрасывает исключение при попытке удалить элемент из пустой коллекции.

Импорт

import kotlin.collections.removeFirstOrNull

Синтаксис

fun <T> MutableList<T>.removeFirstOrNull(): T?
fun <T> ArrayDeque<T>.removeFirstOrNull(): T?
fun <T> MutableCollection<T>.removeFirstOrNull(): T?

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

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

  • MutableList - изменяемые списки
  • ArrayDeque - двусторонние очереди
  • LinkedList - связанные списки
  • MutableCollection - любые изменяемые коллекции

Не работает с:

  • Array - массивы (фиксированного размера)
  • Set - множества (не гарантируют порядок элементов)
  • Map - словари (работают с парами ключ-значение)
  • List - неизменяемые списки

Пример

Удаление первого элемента из непустого списка:

val numbers = mutableListOf(1, 2, 3, 4, 5) val firstElement = numbers.removeFirstOrNull() println("Removed: $firstElement") println("Remaining list: $numbers")

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

Removed: 1 Remaining list: [2, 3, 4, 5]

Пример

Попытка удаления из пустого списка:

val emptyList = mutableListOf<Int>() val result = emptyList.removeFirstOrNull() println("Result: $result") println("List remains empty: ${emptyList.isEmpty()}")

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

Result: null List remains empty: true

Пример

Использование с ArrayDeque:

val deque = ArrayDeque(listOf('a', 'b', 'c', 'd', 'e')) val removedChar = deque.removeFirstOrNull() println("Removed character: $removedChar") println("Deque after removal: $deque")

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

Removed character: a Deque after removal: [b, c, d, e]

Пример

Безопасная обработка с помощью элвис-оператора:

val items = mutableListOf<String>() val firstItem = items.removeFirstOrNull() ?: "No items available" println(firstItem) items.add("apple") items.add("banana") val nextItem = items.removeFirstOrNull() ?: "No items available" println(nextItem)

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

No items available apple

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

  • функцию removeFirst,
    которая выбрасывает исключение для пустой коллекции
  • функцию removeLastOrNull,
    которая удаляет и возвращает последний элемент или null
  • функцию firstOrNull,
    которая возвращает первый элемент без удаления
  • функцию isEmpty,
    которая проверяет, пустая ли коллекция