Atelier 10 - Gestionnaire de contacts unique
Créez un programme Java qui gère une liste de contacts sans doublons en utilisant les génériques et les HashSet.
Spécifications:
-
Classe générique
Registre<T>:- Contient un
HashSet<T>pour stocker les éléments - Méthode
ajouter(T element): ajoute un élément et retournetruesi l'ajout a réussi,falsesi l'élément existait déjà - Méthode
supprimer(T element): supprime un élément et retournetruesi la suppression a réussi - Méthode
contient(T element): vérifie si un élément est présent - Méthode
getTaille(): retourne le nombre d'éléments - Méthode
afficherTout(): affiche tous les éléments
- Contient un
-
Classe
Contact:- Attributs :
nom(String),courriel(String) - Deux contacts sont considérés égaux s'ils ont le même courriel (peu importe le nom)
- Redéfinir
equals()ethashCode()en conséquence - Redéfinir
toString()pour afficher le nom et le courriel
- Attributs :
-
Programme principal (menu interactif) :
- Créer un
Registre<Contact> - Menu en boucle avec les options :
- Ajouter un contact (demander nom et courriel)
- Supprimer un contact (par courriel)
- Rechercher un contact (par courriel)
- Afficher tous les contacts
- Afficher le nombre de contacts
- Quitter
- Créer un
Exemple d'exécution:
=== Gestionnaire de contacts ===
1. Ajouter un contact
2. Supprimer un contact
3. Rechercher un contact
4. Afficher tous les contacts
5. Nombre de contacts
6. Quitter
Choix : 1
Nom : Alice Tremblay
Courriel : alice@email.com
Contact ajouté avec succès!
Choix : 1
Nom : Alice T.
Courriel : alice@email.com
Ce contact existe déjà (même courriel)!
Choix : 4
--- Liste des contacts ---
Alice Tremblay (alice@email.com)
Questions de réflexion:
- Quelle est la complexité de temps pour ajouter, supprimer et rechercher un contact dans votre
Registre? - Pourquoi est-il important de redéfinir
hashCode()en même temps queequals()? - Quel serait l'avantage d'utiliser un
Registre<T>générique plutôt qu'unRegistrespécifique aux contacts?