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 :
containset les ensembles fonctionnent selon la valeur- Elles fournissent des clés de table associative sûres et comparables
- Elles s’associent naturellement à
filter,mapetgroupBy copypermet 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,mapetgroupBy copyprend 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
- Déclaration de classes de données
- copy et equals
- Déclarations par déstructuration
- Classes de données dans les collections