Exercices java - ArrayList - HashMap-exos-corrigés


Exercice 1 :     Questions théoriques

1.1)
Lorsque Poseidon génère le code Java pour la classe Facture ci-dessous, il utilisera la classe Vector pour établir la relation entre les classes.  Certains autres auteurs vont plutôt utiliser la classe ArrayList pour établir la même relation.





Quelle est la différence fondamentale entre la classe Vector et la classe ArrayList du package java.util?  Pour répondre à cette question, consultez l'aide interactive de JBuilder7 -ou- la documentation du package java.util sur le site Internet http://java.sun.com/j2se/1.4.1/docs/api/




1.2)
Lorsque Poseidon génère le code Java pour la classe Catalogue ci-dessous, il utilisera la classe Hashtable pour établir la relation entre les classes.  Certains autres auteurs vont plutôt utiliser la classe HashMap pour établir la même relation.



Quelle est la différence fondamentale entre la classe Hashtable et la classe HashMap du package java.util?  Pour répondre à cette question, consultez l'aide interactive de JBuilder7 -ou- la documentation du package java.util sur le site Internet http://java.sun.com/j2se/1.4.1/docs/api/


Exercice 2 :     Étude de cas: Collection de disques


Soit le diagramme de classe ci-dessous:





2.1)      Dessiner un diagramme d'objets conforme au diagramme de classe ci-dessus.  Assurez-vous que votre diagramme illustre toutes les possibilités des relations et toutes leurs multiplicités.

2.2)      Implanter le code Java correspondant au diagramme de classe.  N'oubliez pas de définir toutes les méthodes set…, get… et toString().  Dans chaque classe, codez une méthode main() afin de tester toutes les méthodes de la classe.  Assurez-vous de respecter toutes les relations, leur visibilité, les attributs et les méthodes.

N.B.: Les valeurs de retour des méthodes n'apparaissent pas dans le tableau ci-dessous.

Classe
Méthode
Description
Oeuvre
clone()
Cloner adéquatement



Disque
creerOeuvre( String leNom, int laDuree )
Créer une oeuvre et l'associer au disque courant.
Disque
detruireOeuvre ( Oeuvre laOeuvre )
Détruire l'oeuvre demandée du disque courant
Disque
detruireOeuvre ( int indice )
Détruire la xième oeuvre du disque courant
Disque
getOeuvre ( int indice )
Retourne la xième oeuvre du disque courant
Retourne null si l'indice est hors limite
Disque
getNbOeuvres()
Retourne la quantité de oeuvres de la pièce courante (i.e., associées à la pièce courante)
Disque
getDuree()
La durée du disque correspond à la durée totale des œuvres contenues sur le disque
Disque
getPrix()
Le prix d'un disque se calcule ainsi:
la quantité d'œuvres * prixOeuvre
+ la durée totale du disque * prixMinute
Disque
clone()
Cloner adéquatement



Collection
ajouter( Disque leDisque )
Associer la collection au disque reçu en paramètre
Collection
retirer( Disque leDisque )
Dissocier la collection du disque reçu en paramètre
Collection
getDisque( Integer leIdentificateur )
Retourne le disque dont l'identificateur correspond à celui reçu en paramètre
Collection
getDisque( String leNom )
Retourne le disque dont le nom correspond à celui reçu en paramètre
Collection
getNbDisques()
Retourne la quantité de disques dans la collection courante
Collection
getPrix()
Le prix de la collection correspond au prix total de tous les disques regroupées dans la collection.
Collection
getPrix( String leIdentificateur )
Retourne le prix

Article plus récent Article plus ancien

Leave a Reply