D14 - TP3 - Les collections en Java

L’objectif ce TP est de présenter d’une part l’utilisation des collections et d’autre part l’utilisation d’un outils d’édition de diagrammes UML permettant la génération de code Java (Topcased ou l’éditeur UML intégré à Intellij Idea).

Vous utiliserez les classes du TP précédent.

  • Créez un ensemble d’animaux (sans utiliser de génériques) et peuplez le en utilisant concrètement un HashSet.
  • On suppose que tous les animaux ont un nom, indiquez que deux animaux sont égaux s’ils ont le même nom.
  • Vérifier que l’on ne puisse pas ajouter deux animaux ayant le même nom (par définition d’un ensemble)
  • Affichez cet ensemble en utilisant un itérateur puis avec le foreach de Java 5
  • Transformez le support physique de cet ensemble en un TreeSet, que faut-il modifier d’autre ?
  • Créer une liste d’animaux à partir des animaux de l’ensemble.
  • Afficher la liste des animaux triée par l’ordre alphabétique de leur nom.
  • Convertissez cet ensemble en un tableau d’animaux (Faites attention au type)
  • Modifier cet ensemble en ajoutant la généricité et définissez un ensemble d’animaux (supprimez les transtypages devenus inutiles).
  • On suppose que l’on associe à chaque animal un tatouage unique composé de son espèce (une Chaîne de caractères) et d’un entier. Le couple des deux est unique. Ecrire la classe tatouage, surcharger et redéfinir les méthodes nécessaires. Créer une Map (avec la généricité) contenant des animaux ((Aigle,1), (Aigle,2), (Chien,1), (Chien,2)) et affichez les informations concernant l’animal dont l’identifiant est (Chien,1).

L’objectif est d’écrire un programme de gestion d’une bibliothèque qui prête des livres et des ordinateurs à des enseignants et des étudiants.

fr.univtln.bruno.tp.tp3.Bilbio.eps

La correction est ici : https://lsis.univ-tln.fr/redmine/projects/librarymanager

Ecrire (sans utiliser d’éditeur UML) les classes Java correspondant au diagramme UML donné décrivant une bibliothèque simple. Vous veillerez en particulier à

  • redéfinir la méthode toString() des différentes classes pour que celles-ci puissent être affichées
  • représenter correctement les associations multiples en utilisant des collections (il est conseillé d’utiliser les génériques).
  • créer une classe exécutable Test dans laquelle vous pourrez :
    • créer une bibliothèque
    • ajouter des adhérents qui doivent avoir un nom, un prénom et un statut
    • ajouter au moins deux livres, deux revues, deux dictionnaires et deux BD
    • ajouter deux ordinateurs portables (un sous linux, un sous windows)

Ecrire le code permettant de gérer les emprunts en ajoutant aux adhérents les méthodes boolean emprunter(Empruntable e) et boolean rendre(Empruntable e). Pensez à bien vérifier qu’un objet n’est pas emprunté deux fois (vérifier que cela marche en faisant un test dans la classe Test) et qu’un adhérent n’emprunte pas plus de cinq objets.

  • Ajouter une méthode void afficherEmprunts() à la classe Adherent
  • Ajouter une méthode void afficherFonds() à la classe Bibliothèque qui affiche les documents et le matériel (chacun affichant par qui il a été emprunté). Ajoutez les méthodes qui vous semblent utiles pour cela
  • Surcharger les méthodes emprunter et rendre pour les Livres et les Portables, pour vérifier que l’on emprunte au plus cinq livres mais un seul portable.

Ajouter une méthode Collection rechercherTitre(String mot), qui retourne une collection contenant des références vers les documents qui comportent la chaîne mot dans leur titre.

En utilisant un outils d’édition de diagramme UML, construisez le diagramme précédent et générer automatiquement le squelette des classes.

Vous pouvez affiner vos connaissances en suivant le tutorial d’Oracle http://docs.oracle.com/javase/tutorial/collections/index.html.