---
# System prepended metadata

title: 2020-04-09 | Kotlin | Collections
tags: [android, kotlin, gobelins]

---

# 2020-04-09 | Kotlin | Collections

###### tags: `kotlin` `android` `gobelins`

## Exercice

### Enoncé
1. Créer une classe Etudiant avec les attributs : name, code, sexe, adresse, age 
2. Créer une liste de 10 étudiants 
3. Ordonner la liste par en fonction de l'âge
4. Grouper les éléments en fonction de leur sexe 
5. Extraire la liste des filles et des garçons
6. Modifier le nom du premier garçon de la liste principale, qu’observezvous ?
7. Créer une liste contenant uniquement le nom des étudiants 
8. Supprimer tous les étudiants d’un sexe donné 
9. Inverser la liste 
10. Vider la liste 

### Code
```kotlin
// 1. Créer une classe Etudiant
data class Etudiant (
    var code:String,
    var name:String,
    var adresse:String,
    var sexe:String,
    var age:Int
)

// 2. Créer une liste de 10 étudiants
val etudiants = mutableListOf<Etudiant>()
etudiants.add(Etudiant("1724","Valentin","Morzine","Homme",21))
etudiants.add(Etudiant("4580","Aurélie","Lyon","Femme",32))
etudiants.add(Etudiant("6529","Elsa","Chambéry","Femme",12))
etudiants.add(Etudiant("0986","Patrick","Annecy","Homme",19))
etudiants.add(Etudiant("6591","Laura","Grenoble","Femme",45))
etudiants.add(Etudiant("8945","Edouard","Morzine","Homme",26))
etudiants.add(Etudiant("2856","Eddy","Aix les Bains","Homme",45))
etudiants.add(Etudiant("4458","Cloé","Annecy","Femme",21))
etudiants.add(Etudiant("5855","William","Ambérieux","Homme",30))
etudiants.add(Etudiant("6856","Jessica","Lyon","Femme",18))

// 3. Trier les étudiants par leur age
etudiants.sortBy { it.age }
println(etudiants)

// 4. Grouper le tableau
// 5. Extraire la liste des filles et des garçons
println(etudiants.groupBy { it.sexe  }.get("Femme"))
println(etudiants.groupBy { it.sexe  }.get("Homme"))

// 6. Afficher le nom du premier garçon
println(etudiants.first { it.sexe == "Homme" }.name)

// 7. Créer une liste avec les noms des étudiants
val etudiantsNoms = mutableListOf<String>()
etudiants.forEach {
    etudiantsNoms.add(it.name)
}
println(etudiantsNoms)

// 8. Supprimer tout les éléments d'un sexe donné
etudiants.removeIf { it.sexe == "Femme" }
println(etudiants)

// 9. Inverser la liste
println(etudiants.reversed())

// 10. Vider la liste
etudiants.clear()
println(etudiants)
```