0Pricing
Kotlin Academy · Lektion

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

  1. Warum Sequences?
  2. Sequences erstellen
  3. Lazy-Operationen
  4. Sequences oder Collections
← Zurück zu Kotlin Academy