Функция first

Функция first возвращает первый элемент коллекции. Может принимать необязательный параметр-предикат - функцию, которая определяет условие поиска элемента. Если предикат не указан, возвращается просто первый элемент коллекции. Если ни один элемент не удовлетворяет условию предиката, выбрасывается исключение NoSuchElementException.

Импорт

kotlin// Функция доступна без импорта для всех коллекций

Синтаксис

kotlinfun <T> Iterable<T>.first(): T
kotlinfun <T> Iterable<T>.first(predicate: (T) -> Boolean): T
kotlinfun <T> Array<T>.first(): T
kotlinfun <K, V> Map<K, V>.first(): Map.Entry<K, V>

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

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

Пример

Получим первый элемент списка:

kotlinval list = listOf(1, 2, 3, 4, 5)
val res = list.first()
println(res)

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

kotlinInt 1

Пример

Получим первый элемент массива:

kotlinval array = arrayOf('a', 'b', 'c', 'd', 'e')
val res = array.first()
println(res)

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

kotlinChar a

Пример

Получим первый элемент множества:

kotlinval set = setOf("apple", "banana", "cherry")
val res = set.first()
println(res)

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

kotlinString "apple"

Пример

Получим первый элемент словаря:

kotlinval map = mapOf(1 to "one", 2 to "two", 3 to "three")
val res = map.first()
println(res)

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

kotlinEntry 1=one

Пример

Найдем первый четный элемент в списке:

kotlinval numbers = listOf(1, 3, 5, 2, 4, 6)
val res = numbers.first { it % 2 == 0 }
println(res)

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

kotlinInt 2

Пример

Найдем первый элемент, начинающийся с определенной буквы:

kotlinval words = listOf("apple", "banana", "avocado", "cherry")
val res = words.first { it.startsWith("a") }
println(res)

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

kotlinString "apple"

Обработка исключений

Если коллекция пустая или ни один элемент не удовлетворяет условию, функция first выбрасывает NoSuchElementException:

kotlinval emptyList = emptyList<Int>()

try {
  val res = emptyList.first()
} catch (e: NoSuchElementException) {
  println("Collection is empty")
}

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

kotlinString "Collection is empty"

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

  • функцию firstOrNull,
    которая возвращает null вместо исключения
  • функцию last,
    которая возвращает последний элемент коллекции
  • функцию elementAt,
    которая возвращает элемент по указанному индексу
  • функцию find,
    которая аналогична firstOrNull с предикатом