Criação de Sequências
A partir de coleções e geradores
Criação de Sequências é 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.
Criando sequências
Há várias maneiras de criar uma Sequence: a partir de coleções existentes, de elementos, com uma função geradora ou com um construtor. Esta lição aborda cada uma delas.
De uma coleção com asSequence
A abordagem mais comum é chamar asSequence() em uma coleção existente para processá-la de forma preguiçosa.
fun main() {
val seq = listOf(1, 2, 3, 4).asSequence()
val result = seq.map { it * 2 }.toList()
println(result)
}De elementos com sequenceOf
sequenceOf cria uma sequência diretamente a partir de um conjunto fixo de valores.
fun main() {
val seq = sequenceOf("a", "b", "c")
seq.forEach { println(it) }
}Sequências infinitas com generateSequence
generateSequence cria uma sequência possivelmente infinita a partir de uma semente e de uma função que calcula o próximo elemento. Combine-a com take para limitá-la.
fun main() {
val powers = generateSequence(1) { it * 2 }
val first5 = powers.take(5).toList()
println(first5)
}Interrompendo generateSequence
Se a função do próximo elemento retornar null, a sequência termina. Isso permite gerar elementos até que uma condição seja atendida.
fun main() {
val countdown = generateSequence(5) { if (it > 1) it - 1 else null }
println(countdown.toList())
}generateSequence sem uma semente
Você pode passar uma única lambda produtora que retorna o próximo valor ou nulo. Isso é útil para ler fluxos de entrada de forma preguiçosa.
fun main() {
var n = 0
val seq = generateSequence { if (n < 3) n++ else null }
println(seq.toList())
}O construtor de sequências
O construtor sequence { } permite produzir elementos de forma imperativa usando yield (um valor) e yieldAll (muitos valores).
fun main() {
val seq = sequence {
yield(1)
yield(2)
yieldAll(listOf(3, 4))
}
println(seq.toList())
}Produção preguiçosa
O construtor também é preguiçoso: o código entre as produções é executado apenas à medida que os elementos são solicitados. Combinado com take, você pode descrever geradores infinitos com segurança.
fun main() {
val naturals = sequence {
var i = 1
while (true) {
yield(i)
i++
}
}
println(naturals.take(4).toList())
}Fibonacci com generateSequence
Um exemplo clássico: gerar números de Fibonacci de forma preguiçosa usando um par como estado.
fun main() {
val fib = generateSequence(Pair(0, 1)) { Pair(it.second, it.first + it.second) }
.map { it.first }
println(fib.take(8).toList())
}Convertendo novamente em uma coleção
Uma sequência se torna uma coleção concreta somente quando você chama uma operação terminal como toList(), toSet() ou toMutableList().
fun main() {
val set = sequenceOf(1, 2, 2, 3).toSet()
println(set)
}Escolhendo um método de criação
Use asSequence() para dados existentes, sequenceOf para valores fixos, generateSequence para séries calculadas e o construtor sequence { } para uma geração imperativa personalizada.
Verificação rápida
Como generateSequence sabe quando parar?
Recapitulação
Você pode criar sequências com asSequence(), sequenceOf, generateSequence (semente mais próximo elemento, termina com nulo) e o construtor sequence { } com yield/yieldAll. Em seguida, você verá como as operações preguiçosas evitam listas intermediárias.
Perguntas Frequentes
A aula “Criação de Sequências” é grátis?
Sim — o texto completo de “Criação de Sequências” é 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 “Criação de Sequências”?
A partir de coleções e geradores 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 “Criação de Sequências”?
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
- Por que Usar Sequências
- Criação de Sequências
- Operações Tardias
- Sequências versus Coleções