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
- Listas e listas mutáveis
- Mapas e conjuntos
- map, filter, forEach
- Lambdas e funções de ordem superior