Je suis actuellement un cours en java ou on revise présentement les notions de Collections. Pour le travail pratique qu'on me demande de faire, je dois faire une BDD de gestion d'auteur (la clé) et de livres (les valeurs). Pour mieux comprendre, voici une partie de l'énoncé du T.P.
Citation :
Énoncé : On se propose de gérer une banque de données composée de collections d?éléments représentant des oeuvres littéraires ainsi que leurs auteurs.
Un auteur est représenté par :
code 4 caractères alphanumériques débutant par la lettre ?A?.
nom 30 caractères (maximum) sous la forme nom(s) de famille, prénom(s).
pays d?origine 4 caractères (maximum).
Un livre est représenté par :
code 4 caractères alphanumériques débutant par la lettre ?L?.
titre 40 caractères (maximum).
catégorie 12 caractères (maximum).
code de l?auteur 4 caractères alphanumériques débutant par la lettre ?A? .
prix un réel.
nombre de pages un entier.
a) Vous devez écrire une classe pour conserver et traiter les attributs d?un auteur. b) Vous devez aussi écrire une classe pour conserver et traiter les attributs d?un livre.
c) Vous devez utiliser une map pour conserver les objets représentant les auteurs ainsi que leurs oeuvres.
? La partie clé de la map :
1. La clé devra contenir tous les attributs d?un auteur.
2. Chaque auteur se distingue par son code qui est unique (pas de doublons).
3. Les auteurs doivent être accessible en ordre alphabétique du nom.
? La partie valeur de la map :
1. La valeur sera une collection contenant les objets livres écrits par cet auteur.
2. Les livres de cette collection doivent être accessibles dans l?ordre alphabétique de leur titre.
3. Pour simplifier le problème, les doublons ne sont pas permis pour les livres.
? Un livre ne peut être ajouté à la map que si l?auteur y est déjà présent.
|
Le prof demande d'avoir la solution la plus performante possible tout en justifiant notre choix.
Donc si j'utilise une hashmap, les itérations sont plus rapides, cependant je devrai créer une collection temporaire pour afficher les auteurs triés par noms (enfin je crois?).
Si j'utilise une TreeMap les performances seront moindres, mais en théorie je n'aurais pas à retrier les informations.
Qu'en pensez-vous ? Est-ce que j'ai oublié quelque chose?
Merci!