• Aucun résultat trouvé

TP n°3 Les collections

N/A
N/A
Protected

Academic year: 2022

Partager "TP n°3 Les collections"

Copied!
3
0
0

Texte intégral

(1)

TP n°3

Les collections

Exercice 1 : Collection contenant des noms de pays

Pour cet exercice, vous pouvez vous aider de la documentation en ligne de la classe « ArrayList » (http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html)

a) Créer un programme Java qui crée une collection (ArrayList) de noms de pays puis alimenter cette collection avec quelques valeurs et afficher la taille de la collection

Exemple de résultat à obtenir :

> java CollPays

La collection creee contient 4 pays !

b) Compléter le programme pour afficher le contenu de la collection.

Exemple de résultat à obtenir :

> java CollPays

La collection créée contient 4 pays ! France

Allemagne USA

Chine

c) Trouver une méthode pour vider la collection et modifier votre programme pour afficher un message d’erreur lorsqu’elle est vide et afficher le contenu lorsqu’elle n’est pas vide.

Exemple de résultat à obtenir :

> java CollPays Liste vide

d) Après avoir de nouveau alimenté votre liste de pays, modifiez le nom d’un pays et affichez de nouveau la liste des pays.

Conseil : Pour modifier le nom, il faut supprimer un élément (remove) et en ajouter un autre (add) Remarque : Il y a plusieurs méthodes pour ajouter ou supprimer des éléments dans une collection de type ArrayList. Choisissez celle que vous voulez (dans la documentation) !

(2)

e) Triez votre collection et ré-affichez la liste des pays.

Pour trier notre collection, il faut utiliser la méthode « sort ». Si vous regardez la documentation de la classe « ArrayList », vous ne trouvez pas cette méthode.

Mais allez voir la documentation de la classe « Collections » : cette méthode y est présente.

Et par chance, une « ArrayList » est aussi une « collection ». Comme Médor qui est un « Chien » est aussi un « Animal ».

Ces notions seront vus ultérieurement…

Pour le moment, utilisons la syntaxe suivante « Collections.sort(uneArrayList) » pour trier une ArrayList.

Exercice 2 : Annuaire

Quelques interfaces et classes sont disponibles dans le répertoire partagé (…/TD3/annuaire) a) Réaliser une classe M_Annuaire implémentant l'interface Annuaire.

On utilisera comme structure de données pour l'annuaire une table associative (interface Map) : la personne jouant le rôle de clé et la liste des numéros de téléphone étant la valeur associée à cette clé. Dans un premier temps on se contentera d'écrire une implémentation complète uniquement pour les méthodes ajouterEntree(Personne, ListeNumTel), personnes(),

afficher() et numeros() de la classe Annuaire.

b) Tester ces méthodes avec le petit programme principal suivant qui :

• crée un annuaire vide,

• ajoute une entrée pour une personne de nom DURAND, prénom Sophie, Civilité Mlle. avec comme numéro 0500151171

• ajoute une entrée pour une personne de nom DUPONT, prénom Jean, Civilité M. avec comme numéro 0500151170

• ajoute une entrée pour une personne de nom DUSCHMOL, prénom Louis, Civilité M. avec comme numéro 0500146761

• ajoute une entrée pour une personne de nom AARGH, prénom Robert, Civilité M. avec comme numéro 0500140361

• affiche le contenu de l'annuaire.

• effectue une recherche des numéros de la personne Sophie DURAND et une recherche des numéros de Jean DUPONT

public static void main(String[] args) { // crée un annuaire vide

Annuaire an = new M_Annuaire();

// ajoute deux personnes à l'annuaire

Personne p1 = new Personne(Personne.MLLE,"DURAND","Sophie");

an.ajouterEntree(p1,new AL_ListeNumTel(new NumTel(0500151171,'D')));

an.ajouterEntree(new Personne(Personne.MR,"DUPONT","Jean"),

new AL_ListeNumTel(new NumTel(0500151170,'P')));

an.ajouterEntree(new Personne(Personne.MR,"DUSCHMOL", "Louis"),

(3)

new AL_ListeNumTel(new NumTel(0500146761,'P')));

an.ajouterEntree(new Personne(Personne.MR,"AARGHH", "Robert"),

new AL_ListeNumTel(new NumTel(0500140361,'P')));

// imprime l'annuaire

System.out.println("---");

System.out.println(an);

System.out.println("---");

// Recherche des numéros de Sophie DURAND System.out.println("numeros de " + p1);

System.out.println(an.numeros(p1));

// Recherche des numéros de Jean DUPONT

Personne p2 = new Personne(Personne.MR,"DUPONT","Jean");

System.out.println("numeros de " + p2);

System.out.println(an.numeros(p2));

}

Constatez que la recherche du numéro pour Jean DUPONT a échoué alors qu'elle a réussi pour Sophie DURAND. Quelle explication donnez vous à cela ?

c) Modifiez la classe Personne de manière à corriger les erreurs détectées précédemment.

Références

Documents relatifs

C’est l’ambition du Journal d’Henri, qui restitue les grandes pages de l’histoire de notre pays et de notre ville d’Évreux pendant la Seconde Guerre mondiale .. Je

Pour mieux vivre la douleur, il existe des moyens plus raisonnables et plus efficaces que le mépris, la peur et les palliatifs.. Nous devons, avant tout, réfléchir sur

Pour prendre un exemple, même si au nombre des événements qui ont conduit à la crise pétrolière de 1973, certains sont de nature financière ou monétaire (comme la fin du système

Le jour où une tour de son château s’écroula sur la pauvre Reine BoBo, c’est elle qui réussit à se faufiler entre les grosses pierres pour aller la sauver.. La

Composed of an ultra soft microfibre, a wide elastic band and flat finishes, this line is perfect for all modern women, in search of comfortable

S'il ne travaille plus guère, Napoléon continue de parler beaucoup. Les conversations de ces premières années, recueillies surtout par Las Cases et Gourgaud, le

À la surface de notre planète, les corps se meuvent naturellement en direction de l’endroit où le temps passe plus lente- ment – comme lorsque nous courons sur la plage pour nous

La, le caractère sacré du cheval se retrouve partout, et aussi bien dans le fait qu'Hercule ne tue pas les chevaux de Diomède, assoiffés de sang, mais leur donne