Créer des séquences
À partir de collections et de générateurs
Créer des séquences est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.
Créer des séquences
Il existe plusieurs façons de créer une Sequence : à partir de collections existantes, à partir d’éléments, avec une fonction génératrice ou avec un générateur. Cette leçon présente chacune de ces méthodes.
À partir d’une collection avec asSequence
L’approche la plus courante consiste à appeler asSequence() sur une collection existante pour la traiter paresseusement.
fun main() {
val seq = listOf(1, 2, 3, 4).asSequence()
val result = seq.map { it * 2 }.toList()
println(result)
}À partir d’éléments avec sequenceOf
sequenceOf crée directement une séquence à partir d’un ensemble fixe de valeurs.
fun main() {
val seq = sequenceOf("a", "b", "c")
seq.forEach { println(it) }
}Séquences infinies avec generateSequence
generateSequence construit une séquence, éventuellement infinie, à partir d’une graine et d’une fonction qui calcule l’élément suivant. Associez-la à take pour la limiter.
fun main() {
val powers = generateSequence(1) { it * 2 }
val first5 = powers.take(5).toList()
println(first5)
}Arrêter generateSequence
Si la fonction qui produit l’élément suivant renvoie null, la séquence se termine. Cela vous permet de générer des éléments jusqu’à ce qu’une condition soit satisfaite.
fun main() {
val countdown = generateSequence(5) { if (it > 1) it - 1 else null }
println(countdown.toList())
}generateSequence sans graine
Vous pouvez transmettre une seule lambda productrice qui renvoie la valeur suivante ou null. Cette méthode est pratique pour lire paresseusement des flux d’entrée.
fun main() {
var n = 0
val seq = generateSequence { if (n < 3) n++ else null }
println(seq.toList())
}Le générateur de séquence
Le générateur sequence { } vous permet de produire des éléments de manière impérative avec yield (une valeur) et yieldAll (plusieurs valeurs).
fun main() {
val seq = sequence {
yield(1)
yield(2)
yieldAll(listOf(3, 4))
}
println(seq.toList())
}Production paresseuse
Le générateur est lui aussi paresseux : le code situé entre les appels à yield ne s’exécute que lorsque des éléments sont demandés. Avec take, vous pouvez décrire des générateurs infinis en toute sécurité.
fun main() {
val naturals = sequence {
var i = 1
while (true) {
yield(i)
i++
}
}
println(naturals.take(4).toList())
}Fibonacci avec generateSequence
Un exemple classique consiste à générer paresseusement les nombres de Fibonacci en utilisant une paire comme état.
fun main() {
val fib = generateSequence(Pair(0, 1)) { Pair(it.second, it.first + it.second) }
.map { it.first }
println(fib.take(8).toList())
}Reconvertir en collection
Une séquence ne devient une collection concrète que lorsque vous appelez une opération terminale comme toList(), toSet() ou toMutableList().
fun main() {
val set = sequenceOf(1, 2, 2, 3).toSet()
println(set)
}Choisir une méthode de création
Utilisez asSequence() pour des données existantes, sequenceOf pour des valeurs fixes, generateSequence pour des séries calculées et le générateur sequence { } pour une génération impérative personnalisée.
Vérification rapide
Comment generateSequence sait-elle quand s’arrêter ?
Récapitulatif
Vous pouvez créer des séquences avec asSequence(), sequenceOf, generateSequence (graine suivie de la valeur suivante, fin sur null) et le générateur sequence { } avec yield/yieldAll. Vous allez maintenant voir comment les opérations paresseuses évitent les listes intermédiaires.
Questions Fréquemment Posées
La leçon « Créer des séquences » est-elle gratuite ?
Oui — le texte complet de « Créer des séquences » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer des séquences » ?
À partir de collections et de générateurs Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Kotlin Academy ?
Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Créer des séquences » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?
Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.