Kotlin Academy · Aula

Acessando elementos: get, first, last, getOrNull

Recupere elementos usando acessores baseados em índice e acessores funcionais.

Aula 3 de 413 etapas

Acessando elementos: get, first, last, getOrNull é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

Várias formas de acessar elementos

Kotlin oferece várias formas de ler elementos: por índice ([], get), por posição (first, last) e com segurança (getOrNull, firstOrNull).

Acesso por índice com []

A sintaxe com colchetes é uma forma abreviada de get(index). Lança IndexOutOfBoundsException se o índice for inválido.

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

get versus []

list.get(i) é idêntico a list[i] — sintaxe diferente, mesmo comportamento.

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

getOrNull para acesso seguro

getOrNull(i) retorna nulo em vez de lançar uma exceção se o índice estiver fora do intervalo.

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

getOrElse com um valor padrão

getOrElse(i) { default } calcula um valor padrão sob demanda se o índice for inválido.

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

first e last

first() e last() retornam os elementos correspondentes; ambos lançam uma exceção se a lista estiver vazia.

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

firstOrNull / lastOrNull

As variantes ...OrNull retornam nulo em vez de lançar uma exceção para listas vazias — são muito mais seguras.

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

Versões com predicado

first { predicate } retorna o primeiro elemento correspondente; find { predicate } é o equivalente anulável 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)
}

Acessando valores de mapas

Mapas usam a mesma sintaxe [], mas ela retorna um valor anulável. getValue(key) lança uma exceção se a chave estiver ausente; getOrDefault fornece um 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 e elementAtOrNull

Conjuntos e outras coleções sem suporte a índices também oferecem elementAt(i) e sua variante OrNull.

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

Escolhendo o acesso adequado

Prefira as variantes seguras (getOrNull, firstOrNull, getOrDefault), a menos que possa provar que o índice é válido. As exceções são custosas e é fácil esquecer de tratá-las.

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

Verificação rápida

Qual acesso retorna nulo em vez de lançar uma exceção quando o índice está fora do intervalo?

Recapitulação

Use []/get para acesso direto (lança uma exceção em caso de erro). Prefira getOrNull, firstOrNull, lastOrNull, getOrDefault e getOrElse quando os limites puderem ser inválidos. Mapas usam [] para valores anuláveis e getValue para lançar exceções.

Grátis para começar

Aprenda Kotlin com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
51
Aulas
203

Perguntas Frequentes

A aula “Acessando elementos: get, first, last, getOrNull” é grátis?

Sim — o texto completo de “Acessando elementos: get, first, last, getOrNull” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “Acessando elementos: get, first, last, getOrNull”?

Recupere elementos usando acessores baseados em índice e acessores funcionais. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Acessando elementos: get, first, last, getOrNull”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Academy?

Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. listOf, setOf, mapOf: coleções somente para leitura
  2. mutableListOf, mutableMapOf: construtores mutáveis
  3. Acessando elementos: get, first, last, getOrNull
  4. Iterando e transformando coleções com a biblioteca padrão
← Voltar para Kotlin Academy