:: Enseignements :: Master :: M1 :: 2011-2012 :: Java Avancé ::
[LOGO]

TP noté de Java Avancé (2)


Quelques conseils avant de commencer, prenez le temps de lire entièrement le sujet: si vous ne comprenez pas quelque chose, essayez de faire un dessin; si des tests JUnits ne compilent pas, cela veut dire que la signature de votre méthode n'est pas la bonne (il n'y a pas de méthode surchargée dans le sujet à part celles de l'API bien sûr); si un test JUnit ne marche pas et que vous ne comprenez pas pourquoi, relisez la doc de la méthode que vous devez implanter plutôt que d'écrire la méthode pour qu'elle passe le test.

Vous devez configurer votre Eclipse pour que le workspace utilisé soit le repertoire EXAM. A la fin du TP, vous devez vous déconnecter, cela sauvegardera automatiquement votre travail.
Pensez qu'une fois que votre workspace est changé vous devez re-configurer votre Eclipse pour utiliser la version 1.7 de Java (/usr/local/apps/java7) et qu'il faut aussi changer la configuration du compilateur.

Exercice 1 - Bag

Le but de cet exercice est d'implanter un Bag qui est une structure de données qui compte le nombre d'éléments que l'on stocke dedans. Un Bag possède une méthode pour insérer un élement et, si celui-ci est déjà présent dans le Bag, un compteur est incrémenté. Il est de plus possible d'obtenir le compteur associé à un élément.

L'interface de fr.umlv.tpnote2.Bag est la suivante
.
L'interface devra être modifiée pour répondre aux questions du tp noté.
  • La méthode add insère un élément dans le Bag et retourne le nombre d'éleéments contenus dans le Bag (le nouvel élement étant compté). Donc dans le cas, où l'élément n'existe pas au préalable dans le Bag la méthode add doit renvoyer 1.
  • La méthode count prend en paramètre un objet et renvoie le nombre de fois que cet objet est présent dans le Bag ou 0 si l'objet n'est pas dans le Bag.
  • La méthode remove qui retire une fois l'objet du Bag. Si l'objet apparaît n fois dans le Bag, après l'appel à remove, l'objet apparaîtra n - 1 fois. Si l'objet n'apparaît qu'une fois dans le Bag l'objet n'apparaîtra plus dans le Bag.
    La méthode doit renvoyer le nombre de fois que l'objet apparaît dans le Bag après l'appel à remove ou 0 si l'objet n'est pas dans le Bag.

Répondre aux questions suivantes:

Le test JUnit est ici BagTest.java. Attention, cette classe utilise son propre package fr.umlv.tpnote2.test et non pas celui de Bag.