0Pricing
Kotlin Academy · Lektion

Data Classes in Collections

Verwenden Sie sie in Maps und Sets

Data Classes in Collections ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.

Datenklassen treffen auf Collections

Da Datenklassen wertbasierte Implementierungen von equals und hashCode besitzen, funktionieren sie in Collections besonders gut.

In dieser Lektion erfahren Sie, wie Datenklassen in Listen, Sets und Maps verwendet werden.

Datenklassen in einer Liste

Speichern Sie Datenobjekte in einer Liste und iterieren Sie wie bei allen anderen Elementen über sie.

Dank ihres lesbaren toString lassen sie sich einfach ausgeben.

data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(User("Alice", 30), User("Bob", 25))
    for (u in users) println(u)
}

contains vergleicht Werte

Da equals Werte vergleicht, findet contains ein gleichwertiges Objekt, auch wenn es sich um eine andere Instanz handelt.

Sie benötigen nicht exakt dieselbe Referenz.

data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(User("Alice", 30))
    println(users.contains(User("Alice", 30)))
}

Duplikate mit einem Set entfernen

Sets lehnen Duplikate mithilfe von equals und hashCode ab.

Zwei Datenobjekte mit identischen Werten gelten als dasselbe Element.

data class Point(val x: Int, val y: Int)

fun main() {
    val set = setOf(Point(1, 1), Point(1, 1), Point(2, 2))
    println(set.size)
}

Datenklassen als Map-Schlüssel

Eine Datenklasse eignet sich hervorragend als Map-Schlüssel, weil Suchvorgänge auf Wertgleichheit basieren.

Sie können ein Schlüsselobjekt direkt erstellen und den gespeicherten Wert trotzdem finden.

data class Coord(val x: Int, val y: Int)

fun main() {
    val grid = mapOf(Coord(0, 0) to "start", Coord(1, 1) to "goal")
    println(grid[Coord(1, 1)])
}

Datenklassen als Map-Werte

Natürlich können Datenklassen auch die Werte sein und umfangreiche Datensätze modellieren, die über eine ID als Schlüssel angesprochen werden.

Das ist ein gängiges Muster für In-Memory-Suchvorgänge.

data class User(val name: String, val age: Int)

fun main() {
    val byId = mapOf(1 to User("Alice", 30))
    println(byId[1]?.name)
}

Collections filtern

Kombinieren Sie Datenklassen mit Collection-Funktionen wie filter, um Ihre Daten abzufragen.

Die Lambda-Funktion greift direkt auf Eigenschaften zu.

data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(User("A", 20), User("B", 40))
    val adults = users.filter { it.age >= 30 }
    println(adults)
}

Auf Eigenschaften abbilden

Verwenden Sie map, um eine Collection von Objekten in eine Collection mit jeweils einer Eigenschaft umzuwandeln.

So extrahieren Sie nur die benötigten Daten.

data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(User("Alice", 30), User("Bob", 25))
    val names = users.map { it.name }
    println(names)
}

Nach einer Eigenschaft gruppieren

groupBy wandelt eine Liste in eine Map um, deren Schlüssel eine ausgewählte Eigenschaft ist.

Hier werden Benutzer nach ihrer Stadt gruppiert.

data class User(val name: String, val city: String)

fun main() {
    val users = listOf(User("A", "Paris"), User("B", "Paris"), User("C", "Rome"))
    val byCity = users.groupBy { it.city }
    println(byCity["Paris"]?.size)
}

Elemente unveränderlich aktualisieren

Um ein Element in einer unveränderlichen Liste zu aktualisieren, wenden Sie map auf die Liste an und verwenden copy für das passende Element.

Das Ergebnis ist eine neue Liste mit einem geänderten Objekt.

data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(User("Alice", 30), User("Bob", 25))
    val updated = users.map { if (it.name == "Bob") it.copy(age = 26) else it }
    println(updated)
}

Alles zusammenführen

Datenklassen sind ideale Elemente für Collections:

  • contains und Sets arbeiten wertbasiert
  • Sie ergeben sichere, vergleichbare Map-Schlüssel
  • Sie lassen sich auf natürliche Weise mit filter, map und groupBy kombinieren
  • copy ermöglicht unveränderliche Aktualisierungen
data class User(val name: String, val age: Int)

fun main() {
    val users = setOf(User("Alice", 30), User("Alice", 30))
    println(users.size)
    println(users.map { it.name })
}

Kurzer Test

Testen Sie Ihr Verständnis von Datenklassen in Collections.

Zusammenfassung

Sie haben gelernt, wie Datenklassen in Collections funktionieren:

  • Wertgleichheit ermöglicht contains, Sets und Map-Schlüssel
  • Sie lassen sich mit filter, map und groupBy kombinieren
  • copy unterstützt unveränderliche Aktualisierungen

Damit ist der Kurs zu Datenklassen und Destrukturierung abgeschlossen.

Häufig gestellte Fragen

Ist die Lektion „Data Classes in Collections“ kostenlos?

Ja — der vollständige Text von „Data Classes in Collections“ 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 „Data Classes in Collections“?

Verwenden Sie sie in Maps und Sets 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 4 von 4.

Wie lange dauert die Lektion „Data Classes in Collections“?

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. Data Classes deklarieren
  2. copy und equals
  3. Destrukturierende Deklarationen
  4. Data Classes in Collections
← Zurück zu Kotlin Academy