0Pricing
Kotlin Academy · Leçon

Classes de données dans les collections

Les utiliser dans les maps et les ensembles

Classes de données dans les collections est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 4 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.

Les classes de données au cœur des collections

Comme les classes de données possèdent des fonctions equals et hashCode fondées sur la valeur, elles se comportent parfaitement dans les collections.

Cette leçon montre comment les classes de données fonctionnent dans les listes, les ensembles et les tables associatives.

Classes de données dans une liste

Stockez des objets de données dans une liste et parcourez-les comme n’importe quels autres éléments.

Leur fonction toString lisible facilite l’affichage.

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 fonctionne selon la valeur

Comme equals compare les valeurs, contains trouve un objet égal même s’il s’agit d’une instance différente.

Vous n’avez pas besoin de disposer exactement de la même référence.

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

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

Supprimer les doublons avec un ensemble

Les ensembles refusent les doublons en utilisant equals et hashCode.

Deux objets de données ayant des valeurs identiques sont considérés comme le même élément.

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

Classes de données comme clés de table associative

Une classe de données constitue une excellente clé de table associative, car les recherches reposent sur l’égalité des valeurs.

Vous pouvez créer un objet clé à la volée et retrouver malgré tout la valeur enregistrée.

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

Classes de données comme valeurs de table associative

Bien sûr, les classes de données peuvent également être utilisées comme valeurs afin de modéliser des enregistrements riches associés à un identifiant.

C’est une structure courante pour les recherches en mémoire.

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

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

Filtrer des collections

Combinez les classes de données avec des fonctions de collection comme filter pour interroger vos données.

La lambda accède directement aux propriétés.

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

Transformer en propriétés

Utilisez map pour transformer une collection d’objets en une collection contenant une seule propriété.

Vous extrayez ainsi uniquement les données dont vous avez besoin.

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

Regrouper selon une propriété

groupBy transforme une liste en table associative dont la clé est une propriété choisie.

Ici, les utilisateurs sont regroupés selon leur ville.

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

Mettre à jour des éléments de façon immuable

Pour mettre à jour un élément dans une liste immuable, parcourez-la avec map et utilisez copy sur l’élément correspondant.

Le résultat est une nouvelle liste contenant un objet modifié.

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

Tout mettre en pratique

Les classes de données sont idéales comme éléments de collection :

  • contains et les ensembles fonctionnent selon la valeur
  • Elles fournissent des clés de table associative sûres et comparables
  • Elles s’associent naturellement à filter, map et groupBy
  • copy permet les mises à jour immuables
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 })
}

Vérification rapide

Vérifiez votre compréhension des classes de données dans les collections.

Récapitulatif

Vous avez appris comment les classes de données fonctionnent dans les collections :

  • L’égalité des valeurs permet à contains, aux ensembles et aux clés de table associative de fonctionner
  • Elles s’associent à filter, map et groupBy
  • copy prend en charge les mises à jour immuables

Le cours Classes de données et déstructuration est maintenant terminé.

Questions Fréquemment Posées

La leçon « Classes de données dans les collections » est-elle gratuite ?

Oui — le texte complet de « Classes de données dans les collections » 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 « Classes de données dans les collections » ?

Les utiliser dans les maps et les ensembles 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 4 sur 4.

Combien de temps prend la leçon « Classes de données dans les collections » ?

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.

Toutes les leçons de ce cours

  1. Déclaration de classes de données
  2. copy et equals
  3. Déclarations par déstructuration
  4. Classes de données dans les collections
← Retour à Kotlin Academy