Sequences erstellen
Aus Collections und Generatoren
Sequences erstellen ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Sequences erstellen
Es gibt mehrere Möglichkeiten, eine Sequence zu erstellen: aus bestehenden Collections, aus Elementen, mit einer Generatorfunktion oder mit einem Builder. Diese Lektion behandelt alle Varianten.
Aus einer Collection mit asSequence
Am häufigsten rufen Sie asSequence() für eine vorhandene Collection auf, um sie verzögert zu verarbeiten.
fun main() {
val seq = listOf(1, 2, 3, 4).asSequence()
val result = seq.map { it * 2 }.toList()
println(result)
}Aus Elementen mit sequenceOf
sequenceOf erstellt direkt aus einer festen Menge von Werten eine Sequence.
fun main() {
val seq = sequenceOf("a", "b", "c")
seq.forEach { println(it) }
}Unendliche Sequences mit generateSequence
generateSequence erstellt aus einem Startwert und einer Funktion, die das nächste Element berechnet, eine möglicherweise unendliche Sequence. Kombinieren Sie die Funktion mit take, um die Sequence zu begrenzen.
fun main() {
val powers = generateSequence(1) { it * 2 }
val first5 = powers.take(5).toList()
println(first5)
}generateSequence beenden
Wenn die Funktion für das nächste Element null zurückgibt, endet die Sequence. So können Sie Elemente erzeugen, bis eine Bedingung erfüllt ist.
fun main() {
val countdown = generateSequence(5) { if (it > 1) it - 1 else null }
println(countdown.toList())
}generateSequence ohne Startwert
Sie können eine einzelne Producer-Lambda übergeben, die den nächsten Wert oder null zurückgibt. Das ist praktisch, um Eingabeströme verzögert zu lesen.
fun main() {
var n = 0
val seq = generateSequence { if (n < 3) n++ else null }
println(seq.toList())
}Der sequence-Builder
Mit dem Builder sequence { } können Sie Elemente imperativ mithilfe von yield (ein Wert) und yieldAll (mehrere Werte) erzeugen.
fun main() {
val seq = sequence {
yield(1)
yield(2)
yieldAll(listOf(3, 4))
}
println(seq.toList())
}Verzögertes Erzeugen mit yield
Auch der Builder arbeitet verzögert: Code zwischen den yield-Aufrufen wird erst ausgeführt, wenn Elemente abgerufen werden. Zusammen mit take können Sie so unendliche Generatoren sicher beschreiben.
fun main() {
val naturals = sequence {
var i = 1
while (true) {
yield(i)
i++
}
}
println(naturals.take(4).toList())
}Fibonacci mit generateSequence
Ein klassisches Beispiel: Erzeugen Sie Fibonacci-Zahlen verzögert mit einem Pair als Zustand.
fun main() {
val fib = generateSequence(Pair(0, 1)) { Pair(it.second, it.first + it.second) }
.map { it.first }
println(fib.take(8).toList())
}Zurück in eine Collection umwandeln
Eine Sequence wird erst dann zu einer konkreten Collection, wenn Sie eine Terminaloperation wie toList(), toSet() oder toMutableList() aufrufen.
fun main() {
val set = sequenceOf(1, 2, 2, 3).toSet()
println(set)
}Eine Methode zum Erstellen auswählen
Verwenden Sie asSequence() für vorhandene Daten, sequenceOf für feste Werte, generateSequence für berechnete Folgen und den Builder sequence { } für eine benutzerdefinierte imperative Erzeugung.
Kurztest
Woher weiß generateSequence, wann es stoppen soll?
Zusammenfassung
Sie können Sequences mit asSequence(), sequenceOf, generateSequence (Startwert plus nächstes Element, endet bei null) und dem Builder sequence { } mit yield/yieldAll erstellen. Als Nächstes sehen Sie, wie verzögerte Operationen Zwischenlisten vermeiden.
Häufig gestellte Fragen
Ist die Lektion „Sequences erstellen“ kostenlos?
Ja — der vollständige Text von „Sequences erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Sequences erstellen“?
Aus Collections und Generatoren Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Sequences erstellen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Warum Sequences?
- Sequences erstellen
- Lazy-Operationen
- Sequences oder Collections