0Pricing
Android Academy · Aula

map, filter, forEach

Transforme coleções com lambdas.

map, filter, forEach é uma aula grátis de Android 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 Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.

Operações de coleções

As coleções do Kotlin vêm com operações integradas poderosas. Três que você usará constantemente são map, filter e forEach.

Elas permitem transformar, selecionar e percorrer dados em uma única linha clara, em vez de escrever laços manualmente.

map transforma cada item

map cria uma nova lista aplicando uma transformação a cada item.

Dentro da lambda, it se refere ao item atual. A lista original não é alterada.

fun main() {
    val nums = listOf(1, 2, 3)
    val doubled = nums.map { it * 2 }
    println(doubled)
}

map pode alterar tipos

O resultado de map não precisa ser do mesmo tipo que a entrada.

Aqui, transformamos uma lista de nomes em uma lista com os comprimentos deles.

fun main() {
    val names = listOf("Ada", "Linus")
    val lengths = names.map { it.length }
    println(lengths)
}

filter mantém correspondências

filter retorna uma nova lista contendo apenas os itens para os quais a lambda retorna true.

Aqui, mantemos somente os números pares.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val evens = nums.filter { it % 2 == 0 }
    println(evens)
}

filter em strings

A condição pode ser qualquer coisa que retorne um Booleano. Aqui, mantemos apenas as palavras longas.

Os itens que não passam no teste são simplesmente deixados fora do resultado.

fun main() {
    val words = listOf("hi", "hello", "hey", "howdy")
    val long = words.filter { it.length > 3 }
    println(long)
}

forEach executa uma ação

forEach executa um bloco de código para cada item, mas não cria uma nova lista.

Use-o para efeitos colaterais, como imprimir ou registrar informações.

fun main() {
    val fruits = listOf("apple", "banana")
    fruits.forEach { println("Fruit: $it") }
}

map versus forEach

map retorna uma lista transformada, portanto use-o quando precisar de um resultado.

forEach não retorna nada útil, portanto use-o somente para ações. Escolher a opção certa mantém o código claro.

Encadeando operações

Essas operações retornam coleções, então você pode encadeá-las.

Leia da esquerda para a direita: primeiro filter, depois aplique map aos itens restantes.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val result = nums.filter { it % 2 == 0 }.map { it * 10 }
    println(result)
}

Dando nome ao parâmetro

Em vez de it, você pode dar nome ao parâmetro da lambda para deixar o código mais claro, especialmente ao encadear operações.

Use uma seta: { name -> ... }.

fun main() {
    val prices = listOf(10, 25, 5)
    val withTax = prices.map { price -> price + price / 10 }
    println(withTax)
}

forEachIndexed

Quando você também precisar da posição, use forEachIndexed. Ele fornece o índice e o item.

Assim, você não precisa acompanhar um contador manualmente.

fun main() {
    val tasks = listOf("eat", "code", "rest")
    tasks.forEachIndexed { i, task ->
        println("$i: $task")
    }
}

Combinando para um trabalho real

Juntas, essas operações expressam pipelines de dados de forma simples. Aqui, encontramos o comprimento total dos nomes longos.

Isso parece quase uma frase em linguagem comum.

fun main() {
    val names = listOf("Ada", "Grace", "Bo")
    val total = names.filter { it.length > 2 }.map { it.length }.sum()
    println(total)
}

Verificação rápida

Teste sua compreensão sobre operações de coleções.

Recapitulação

map transforma cada item em uma nova lista, filter mantém os itens que correspondem a uma condição e forEach executa uma ação para cada item.

Elas retornam coleções, então encadeie-as para criar pipelines de dados legíveis.

Perguntas Frequentes

A aula “map, filter, forEach” é grátis?

Sim — o texto completo de “map, filter, forEach” é 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 Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.

O que vou aprender em “map, filter, forEach”?

Transforme coleções com lambdas. Você pratica Android 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 Android Academy?

Nenhuma experiência prévia é necessária. Android 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 “map, filter, forEach”?

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 Android Academy?

Sim. Cada aula de Android 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. Listas e listas mutáveis
  2. Mapas e conjuntos
  3. map, filter, forEach
  4. Lambdas e funções de ordem superior
← Voltar para Android Academy