Kotlin Academy · Aula

Agrupamento e Particionamento

Organize os dados

Aula 2 de 413 etapas

Agrupamento e Particionamento é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 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.

Organização de dados

Às vezes, você precisa dividir uma coleção em categorias. O Kotlin oferece groupBy para agrupar elementos por uma chave e partition para dividi-los em duas listas com base em uma condição.

A função de particionamento

partition divide uma coleção em um par de duas listas: os elementos que correspondem ao predicado e os que não correspondem.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6)
    val (even, odd) = numbers.partition { it % 2 == 0 }
    println("Even: $even")
    println("Odd: $odd")
}

Desestruturação do par

Como partition retorna um Pair, você pode desestruturá-lo diretamente em duas variáveis nomeadas, como mostrado acima. Você também pode acessar .first e .second.

fun main() {
    val result = listOf(10, -5, 3, -8).partition { it >= 0 }
    println(result.first)
    println(result.second)
}

A função groupBy

groupBy cria um Map em que cada chave é produzida pelo seletor, e o valor é a lista de elementos que compartilham essa chave.

fun main() {
    val words = listOf("apple", "banana", "avocado", "cherry")
    val byFirstLetter = words.groupBy { it.first() }
    println(byFirstLetter)
}

Agrupamento por uma chave calculada

A chave pode ser qualquer valor calculado, como o comprimento de uma cadeia de caracteres ou um resto.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7)
    val byRemainder = numbers.groupBy { it % 3 }
    println(byRemainder)
}

groupBy com uma transformação de valor

groupBy aceita uma segunda lambda que transforma cada valor antes que ele seja colocado no grupo.

fun main() {
    val words = listOf("red", "rose", "blue", "berry")
    val grouped = groupExample(words)
    println(grouped)
}

fun groupExample(words: List<String>) =
    words.groupBy({ it.first() }, { it.uppercase() })

Iteração sobre grupos

Como groupBy retorna um Map, você pode iterar sobre as entradas para processar cada grupo.

fun main() {
    val animals = listOf("cat", "cow", "dog", "duck")
    val groups = animals.groupBy { it.first() }
    for ((letter, list) in groups) {
        println("$letter -> $list")
    }
}

Contagem com groupingBy

Para fazer uma contagem por chave, usar groupingBy seguido de eachCount é eficiente e facilita a leitura.

fun main() {
    val letters = listOf("a", "b", "a", "c", "b", "a")
    val counts = letters.groupingBy { it }.eachCount()
    println(counts)
}

Particionamento versus filtragem

Quando você precisa apenas dos elementos correspondentes, use filter. Quando precisa dos elementos correspondentes e dos não correspondentes, partition faz isso em uma única passagem e retorna as duas listas.

fun main() {
    val ages = listOf(15, 22, 17, 30, 12)
    val (adults, minors) = ages.partition { it >= 18 }
    println("Adults: $adults, Minors: $minors")
}

Escolhendo entre groupBy e particionamento

Use partition para exatamente dois grupos definidos por uma condição de sim ou não. Use groupBy quando puder haver muitos grupos identificados por alguma propriedade.

Agrupamento prático

O agrupamento e o particionamento substituem laços manuais extensos por mapas e listas. Eles expressam a intenção com clareza e reduzem erros de controle.

Verificação rápida

O que o particionamento retorna?

Recapitulação

Você aprendeu a usar partition para dividir uma coleção em duas listas com base em uma condição e groupBy para agrupá-la em um mapa por uma chave, além de groupingBy().eachCount() para fazer contagens. Em seguida, você reduzirá coleções a valores únicos com agregação.

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 “Agrupamento e Particionamento” é grátis?

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

Organize os dados 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 2 de 4.

Quanto tempo leva a aula “Agrupamento e Particionamento”?

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