Функция 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с предикатом