0Pricing
Kotlin Academy · Aula

Filtragem e Mapeamento

Transforme coleções

Filtragem e Mapeamento é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 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.

Transformando coleções

As coleções do Kotlin vêm com um conjunto amplo de operações funcionais. Duas das mais comuns são filter (selecionar elementos) e map (transformar elementos). Elas retornam novas coleções e nunca modificam a original.

A função filter

filter mantém somente os elementos que satisfazem um predicado, retornando uma nova lista.

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

filterNot e filterNotNull

filterNot mantém os elementos que não correspondem. filterNotNull remove os elementos nulos e retorna uma lista sem nulos.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filterNot { it > 2 })
    val withNulls = listOf(1, null, 3, null)
    println(withNulls.filterNotNull())
}

filterIndexed

filterIndexed fornece tanto o índice quanto o valor no predicado.

fun main() {
    val letters = listOf("a", "b", "c", "d")
    val result = letters.filterIndexed { index, _ -> index % 2 == 0 }
    println(result)
}

A função map

map aplica uma transformação a cada elemento e retorna uma nova lista com os resultados. O tipo do resultado pode ser diferente do tipo de entrada.

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

Mapeando para outro tipo

map pode alterar o tipo dos elementos, por exemplo, transformando números em strings.

fun main() {
    val numbers = listOf(1, 2, 3)
    val labels = numbers.map { "Item $it" }
    println(labels)
}

mapIndexed

mapIndexed fornece o índice junto com cada elemento, para que você possa usar a posição na transformação.

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    val numbered = fruits.mapIndexed { i, fruit -> "${i + 1}. $fruit" }
    numbered.forEach { println(it) }
}

mapNotNull

mapNotNull transforma cada elemento e descarta os resultados nulos. É uma forma organizada de combinar mapeamento e filtragem.

fun main() {
    val strings = listOf("1", "two", "3", "four")
    val numbers = strings.mapNotNull { it.toIntOrNull() }
    println(numbers)
}

Encadeando filter e map

Essas operações se combinam naturalmente. Um padrão comum é filtrar primeiro e depois mapear os elementos restantes.

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

As operações não são destrutivas

Tanto filter quanto map retornam listas completamente novas. A coleção original permanece inalterada, o que torna seu código mais seguro e fácil de compreender.

fun main() {
    val original = listOf(1, 2, 3)
    val doubled = original.map { it * 2 }
    println("Original: $original")
    println("Doubled: $doubled")
}

Filtragem e mapeamento na prática

Juntos, filter e map permitem expressar fluxos de dados de forma declarativa: descreva WHAT você quer, não HOW fazer o laço. Isso é mais claro do que laços for manuais com acompanhamento do índice.

Verificação rápida

Qual é a diferença entre filter e map?

Recapitulação

Você aprendeu a selecionar elementos com filter (e suas variantes filterNot, filterIndexed, filterNotNull) e a transformá-los com map (e mapIndexed, mapNotNull). Eles podem ser encadeados de forma simples e nunca alteram a fonte. Em seguida, você organizará dados com agrupamento e particionamento.

Perguntas Frequentes

A aula “Filtragem e Mapeamento” é grátis?

Sim — o texto completo de “Filtragem e Mapeamento” é 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 “Filtragem e Mapeamento”?

Transforme coleções 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 1 de 4.

Quanto tempo leva a aula “Filtragem e Mapeamento”?

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. Filtragem e Mapeamento
  2. Agrupamento e Particionamento
  3. Agregação
  4. Associação e Achatamento
← Voltar para Kotlin Academy