Функция first
Функция first
возвращает первый элемент коллекции.
Может принимать необязательный параметр-предикат - функцию,
которая определяет условие поиска элемента.
Если предикат не указан, возвращается просто первый элемент коллекции.
Если ни один элемент не удовлетворяет условию предиката,
выбрасывается исключение NoSuchElementException
.
Импорт
// Функция доступна без импорта для всех коллекций
Синтаксис
fun <T> Iterable<T>.first(): T
fun <T> Iterable<T>.first(predicate: (T) -> Boolean): T
fun <T> Array<T>.first(): T
fun <K, V> Map<K, V>.first(): Map.Entry<K, V>
Для каких коллекций работает
Функция first
работает для следующих типов коллекций:
Array
- массивыList
- спискиSet
- множестваMap
- словари (возвращает первую пару ключ-значение)Iterable
- любые итерируемые коллекцииSequence
- последовательности
Пример
Получим первый элемент списка:
val list = listOf(1, 2, 3, 4, 5)
val res = list.first()
println(res)
Результат выполнения кода:
Int 1
Пример
Получим первый элемент массива:
val array = arrayOf('a', 'b', 'c', 'd', 'e')
val res = array.first()
println(res)
Результат выполнения кода:
Char a
Пример
Получим первый элемент множества:
val set = setOf("apple", "banana", "cherry")
val res = set.first()
println(res)
Результат выполнения кода:
String "apple"
Пример
Получим первый элемент словаря:
val map = mapOf(1 to "one", 2 to "two", 3 to "three")
val res = map.first()
println(res)
Результат выполнения кода:
Entry 1=one
Пример
Найдем первый четный элемент в списке:
val numbers = listOf(1, 3, 5, 2, 4, 6)
val res = numbers.first { it % 2 == 0 }
println(res)
Результат выполнения кода:
Int 2
Пример
Найдем первый элемент, начинающийся с определенной буквы:
val words = listOf("apple", "banana", "avocado", "cherry")
val res = words.first { it.startsWith("a") }
println(res)
Результат выполнения кода:
String "apple"
Обработка исключений
Если коллекция пустая или ни один элемент не удовлетворяет условию,
функция first
выбрасывает NoSuchElementException
:
val emptyList = emptyList<Int>()
try {
val res = emptyList.first()
} catch (e: NoSuchElementException) {
println("Collection is empty")
}
Результат выполнения кода:
String "Collection is empty"
Смотрите также
-
функцию
firstOrNull
,
которая возвращаетnull
вместо исключения -
функцию
last
,
которая возвращает последний элемент коллекции -
функцию
elementAt
,
которая возвращает элемент по указанному индексу -
функцию
find
,
которая аналогичнаfirstOrNull
с предикатом