0Pricing
Kotlin Academy · Lección

Acceso a elementos: get, first, last, getOrNull

Recupere elementos mediante accesores basados en índices y accesores funcionales.

Acceso a elementos: get, first, last, getOrNull es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

Muchas formas de acceder

Kotlin ofrece varias formas de leer elementos: por índice ([], get), por posición (first, last) y de forma segura (getOrNull, firstOrNull).

Acceso por índice con []

La sintaxis de corchetes es una forma abreviada de get(index). Lanza IndexOutOfBoundsException si el índice no es válido.

fun main() {
    val items = listOf("a", "b", "c")
    println(items[0]) // a
    println(items[2]) // c
}

get frente a []

list.get(i) es idéntico a list[i]: cambia la sintaxis, pero el comportamiento es el mismo.

fun main() {
    val items = listOf(10, 20, 30)
    println(items.get(1)) // 20
    println(items[1])     // 20
}

getOrNull para acceder de forma segura

getOrNull(i) devuelve null en lugar de lanzar una excepción si el índice está fuera de rango.

fun main() {
    val items = listOf("x", "y")
    println(items.getOrNull(0)) // x
    println(items.getOrNull(5)) // null
}

getOrElse con un valor predeterminado

getOrElse(i) { default } calcula un valor predeterminado de forma diferida si el índice no es válido.

fun main() {
    val items = listOf(1, 2, 3)
    println(items.getOrElse(10) { -1 }) // -1
    println(items.getOrElse(1) { -1 })  // 2
}

first y last

first() y last() devuelven los elementos correspondientes; ambos lanzan una excepción si la lista está vacía.

fun main() {
    val nums = listOf(5, 8, 12)
    println(nums.first()) // 5
    println(nums.last())  // 12
}

firstOrNull / lastOrNull

Las variantes ...OrNull devuelven null en lugar de lanzar una excepción cuando las listas están vacías; son mucho más seguras.

fun main() {
    val empty: List<Int> = emptyList()
    println(empty.firstOrNull()) // null
    println(empty.lastOrNull())  // null
}

Variantes con predicado

first { predicate } devuelve el primer elemento que coincide; find { predicate } es el alias anulable de firstOrNull { predicate }.

fun main() {
    val nums = listOf(3, 7, 8, 11)
    println(nums.first { it > 5 })       // 7
    println(nums.firstOrNull { it > 100 }) // null
    println(nums.find { it > 100 })       // null (same)
}

Acceder a valores de un Map

Los mapas usan la misma sintaxis [], pero esta devuelve un valor anulable. getValue(key) lanza una excepción si falta la clave; getOrDefault proporciona un valor alternativo.

fun main() {
    val ages = mapOf("Alice" to 30, "Bob" to 25)
    println(ages["Alice"])             // 30
    println(ages["Charlie"])           // null
    println(ages.getOrDefault("Z", 0)) // 0
}

elementAt y elementAtOrNull

Los conjuntos y otras colecciones que no admiten índices también proporcionan elementAt(i) y su variante OrNull.

fun main() {
    val s = setOf("a", "b", "c")
    println(s.elementAt(1))          // b
    println(s.elementAtOrNull(10))   // null
}

Elegir el accessor adecuado

Prefiera las variantes seguras (getOrNull, firstOrNull, getOrDefault) a menos que pueda demostrar que el índice es válido. Las excepciones son costosas y es fácil olvidarse de gestionarlas.

fun headOf(list: List<Int>): Int? = list.firstOrNull()
fun main() {
    println(headOf(listOf(1, 2, 3))) // 1
    println(headOf(emptyList()))      // null
}

Comprobación rápida

¿Qué accessor devuelve null en lugar de lanzar una excepción cuando el índice está fuera de rango?

Resumen

Use []/get para el acceso directo (lanza una excepción si hay un error). Prefiera getOrNull, firstOrNull, lastOrNull, getOrDefault y getOrElse cuando los límites puedan no ser válidos. Los mapas usan [] para devolver valores anulables y getValue para lanzar excepciones.

Preguntas frecuentes

¿La lección «Acceso a elementos: get, first, last, getOrNull» es gratis?

Sí — el texto completo de «Acceso a elementos: get, first, last, getOrNull» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Acceso a elementos: get, first, last, getOrNull»?

Recupere elementos mediante accesores basados en índices y accesores funcionales. Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Acceso a elementos: get, first, last, getOrNull»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. listOf, setOf, mapOf: colecciones de solo lectura
  2. mutableListOf, mutableMapOf: constructores mutables
  3. Acceso a elementos: get, first, last, getOrNull
  4. Iterar y transformar colecciones con la biblioteca estándar
← Volver a Kotlin Academy