Agrupamento e Particionamento
Organize os dados
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.
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
- Filtragem e Mapeamento
- Agrupamento e Particionamento
- Agregação
- Associação e Achatamento