05 Avr2016
Tri d'une collection d'objet
Objectifs :
- Définir les propriétés et méthodes d’une classe
- Définir des constructeurs
- Créer une instance de classe
- Utiliser les variables de classe (static)
- Trier une collection d'objet
Énoncé :
- Définir une classe Stagiaire avec les attributs suivants : nom et prénom.
- Définir un constructeur permettant d’initialiser les attributs d'un objet stagiaire par des valeurs saisies par l’utilisateur.
- Définir la méthode toString ( ) permettant d’afficher les informations d'un stagiaire.
- Écrire un programme testant la classe Stagiaire.
- Déclarer une collection d'objet stagiaire.
- Ajouter des stagiaires dans la collection.
- Afficher la liste des stagiaires.
- Modifier la classe de teste pour afficher la liste des stagiaires triée dans un ordre alphabétique des noms, si des stagiaires ont le même nom, ils seront triés en ordre alphabétique des prénoms.
- Exemple :
- ALAMI Ali
- SAFI Amal
- SAFI Karim
- SAFI Widad
- Exemple :
Note
Pour définir un ordre de tri, la classe stagiaire doit implémenter l'interface Comparable, ensuite redéfinir la méthode compareTo ().
La classe Stagiaire
//Tri d'une liste des objets Stagiaire //La classe stagiaire doit implémenter l'interface //Comparable, ensuite re-définir la méthode compareTo
public class Stagiaire implements Comparable<Stagiaire> { private String nom; private String prenom; public Stagiaire(String nom, String prenom) { this.nom = nom; this.prenom = prenom; } public String toString() { return this.nom + " " + this.prenom; } @Override public int compareTo(Stagiaire s) { if (!this.nom.equals(s.nom)) return this.nom.compareTo(s.nom); else return this.prenom.compareTo(s.prenom); } }
La classe de Test
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TestStagiaire { public static void main(String[] args) { List<Stagiaire> stagiaires = new ArrayList<Stagiaire>(); stagiaires.add(new Stagiaire("yves", "amine")); stagiaires.add(new Stagiaire("alaoui", "samir")); stagiaires.add(new Stagiaire("yves", "zineb")); stagiaires.add(new Stagiaire("safi", "amal")); stagiaires.add(new Stagiaire("yves", "amine")); stagiaires.add(new Stagiaire("cheick", "mohamed")); System.out.println("Avant le tri : "); for (Stagiaire s : stagiaires) System.out.println("\t" + s); Collections.sort(stagiaires); System.out.println("Après le tri : "); for (Stagiaire s : stagiaires) System.out.println("\t" + s); } }
Note
La méthode static sort de la classe Collections permet de trier une collection d'objet, à condition que la classe d'objet implémente l'interface générique Comparable et ré-défini la méthode compareTo().
Résultat d’exécution :
Avant le tri :
yves amine
alaoui samir
yves zineb
safi amal
yves amine
cheick mohamed
Après le tri :
alaoui samir
cheick mohamed
safi amal
yves amine
yves amine
yves zineb