Formation : IPS Intervenant : Vincent Ranwez
Université Montpellier II Place Eugène Bataillon
34095 Montpellier Cedex5, France
TP 3 de SDD et Algo
L’objectif de ce TP est de fusionner des fichiers en utilisant les classes HashSet et HashTable
de Java.
Chaque responsable de module envoie au responsable de formation IPS la liste des notes
obtenues dans son module. On veut pouvoir regrouper dans un même fichier les notes
obtenues par les étudiants d’IPS dans une série quelconque de modules.
Chaque responsable de module envoie ses notes dans un fichier ayant le format suivant :
CodeModule
NumEtudiant1 Nom1 Prénom1 Note1
NumEtudiant2 Nom2 Prénom2 Note2
NumEtudiant3 Nom3 Prénom3 Note3
NumEtudiant4 Nom4 Prénom4 Note4
Question 1 : HashSet et HashTable
Q.1.a :
Consultez la documentation de la classe HashSet. Cette classe implémente plusieurs
interfaces ; consultez leurs documentations. Regardez plus particulièrement la documentation
de l’interface Collection et Set.
Q.1.b :
Consultez la documentation de la classe HashTable. Quel est l’équivalent de cette classe en
python ?
Q.1.c :
Vous trouverez des exemples d’utilisation de ces classes sur le site "Java Developers
Almanac". Regardez notamment l’exemple de création d’un HashSet. Dans cet exemple la
création se fait à l’aide de l’instruction :
Set set = new HashSet();
On aurait pu utilisez HashSet set = new HashSet(); mais ce serait moins pertinent. Vous
pouvez lire à ce sujet l’article disponible sur le site de SUN :
http://java.sun.com/developer/technicalArticles/Collections/Using/ (section Programming
Tips and API Design).
Question 2 : Construire une liste d’étudiants
Q.2.a :
Ecrivez un programme qui prend en paramètre la liste des fichiers contenant les notes des
différents modules que vous voulez traiter et affiche en sortie la liste des noms d’étudiants
ayants suivit au moins l’un de ces modules. Pour cela vous utiliserez la classe HashSet.
Utilisez le site "Java Developers Almanac" pour trouver un exemple de lecture de fichier texte
puis utilisez la méthode split() de la classe String pour récupérer les différents champs
présents sur chaque ligne de vos fichiers.
Q.2.b :
Copiez votre HashSet dans un Vector en utilisant le constructeur approprié. Utilisez la
méthode statique "sort()" de Collections pour triez ce vecteur et affichez les élèves dans
l’ordre alphabétique. Pourquoi pouvez-vous utiliser la méthode sort ayant pour signature :
static void sort(List list)