0Pricing
Kotlin Academy · Lektion

Gruppieren und Partitionieren

Organisieren Sie Daten

Gruppieren und Partitionieren 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.

Daten organisieren

Manchmal müssen Sie eine Collection in Kategorien aufteilen. Kotlin bietet groupBy, um Elemente anhand eines Schlüssels in Gruppen einzuteilen, und partition, um sie anhand einer Bedingung in zwei Listen aufzuteilen.

Die Funktion partition

partition teilt eine Collection in ein Pair aus zwei Listen auf: Elemente, die das Prädikat erfüllen, und Elemente, die es nicht erfüllen.

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")
}

Das Pair destrukturieren

Da partition ein Pair zurückgibt, können Sie es direkt in zwei benannte Variablen destrukturieren, wie oben gezeigt. Sie können auch auf .first und .second zugreifen.

fun main() {
    val result = listOf(10, -5, 3, -8).partition { it >= 0 }
    println(result.first)
    println(result.second)
}

Die Funktion groupBy

groupBy erstellt eine Map, wobei jeder Schlüssel vom Selektor erzeugt wird und der Wert die Liste der Elemente ist, die diesen Schlüssel gemeinsam haben.

fun main() {
    val words = listOf("apple", "banana", "avocado", "cherry")
    val byFirstLetter = words.groupBy { it.first() }
    println(byFirstLetter)
}

Nach einem berechneten Schlüssel gruppieren

Der Schlüssel kann jeder berechnete Wert sein, zum Beispiel die Länge einer Zeichenkette oder ein Restwert.

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7)
    val byRemainder = numbers.groupBy { it % 3 }
    println(byRemainder)
}

groupBy mit einer Wertumwandlung

groupBy akzeptiert eine zweite Lambda-Funktion, die jeden Wert umwandelt, bevor er in die Gruppe eingefügt wird.

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() })

Gruppen durchlaufen

Da groupBy eine Map zurückgibt, können Sie die Einträge durchlaufen, um jede Gruppe zu verarbeiten.

fun main() {
    val animals = listOf("cat", "cow", "dog", "duck")
    val groups = animals.groupBy { it.first() }
    for ((letter, list) in groups) {
        println("$letter -> $list")
    }
}

Mit groupingBy zählen

Für eine Zählung pro Schlüssel ist groupingBy gefolgt von eachCount effizient und gut lesbar.

fun main() {
    val letters = listOf("a", "b", "a", "c", "b", "a")
    val counts = letters.groupingBy { it }.eachCount()
    println(counts)
}

partition im Vergleich zu filter

Wenn Sie nur die passenden Elemente benötigen, verwenden Sie filter. Wenn Sie sowohl die passenden als auch die nicht passenden Elemente benötigen, erledigt partition dies in einem einzigen Durchlauf und gibt beide Listen zurück.

fun main() {
    val ages = listOf(15, 22, 17, 30, 12)
    val (adults, minors) = ages.partition { it >= 18 }
    println("Adults: $adults, Minors: $minors")
}

groupBy oder partition auswählen

Verwenden Sie partition für genau zwei Gruppen, die durch eine Ja/Nein-Bedingung definiert sind. Verwenden Sie groupBy, wenn es viele Gruppen geben kann, die nach einer bestimmten Eigenschaft gebildet werden.

Praktisches Gruppieren

Gruppieren und Partitionieren ersetzen ausführliche manuelle Schleifen durch Maps und Listen. Sie bringen die Absicht klar zum Ausdruck und verringern Fehler bei der Verwaltung.

Kurztest

Was gibt partition zurück?

Zusammenfassung

Sie haben partition kennengelernt, um eine Collection anhand einer Bedingung in zwei Listen aufzuteilen, und groupBy, um Elemente anhand eines Schlüssels in einer Map zu gruppieren. Außerdem haben Sie groupingBy().eachCount() für Zählungen kennengelernt. Als Nächstes reduzieren Sie Collections mithilfe von Aggregation auf einzelne Werte.

Häufig gestellte Fragen

Ist die Lektion „Gruppieren und Partitionieren“ kostenlos?

Ja — der vollständige Text von „Gruppieren und Partitionieren“ 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 „Gruppieren und Partitionieren“?

Organisieren Sie Daten 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 „Gruppieren und Partitionieren“?

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. Filtern und Zuordnen
  2. Gruppieren und Partitionieren
  3. Aggregation
  4. Assoziation und Abflachung
← Zurück zu Kotlin Academy