![](//s1.studylibfr.com/store/data-gzf/047c23141b776b1a2005b7e1b49e85e9/1/000246388.htmlex.zip/bg1.jpg)
Contexte : nous allons aborder dans ce TP des classes utilitaires importantes, les Collections, avant de passer à l'accès aux bases
de données à travers la programmation Java
Introduction aux collections
Définition: Une collection est un objet dont la principale fonctionnalité est de contenir d’autres objets, comme un tableau.
Cf fiche de cours séparée sur les Collections
Travail pratique n°1 : utilisation des listes
Enoncé: on va étudier le fonctionnement des listes en Java
Etape 1: créer un nouveau projet Java. Appelez le par exemple TP SLAM2 1.5
Etape 2: créez un package nommé listes
Etape3: créez une classe TestListe et insérez le code fourni TestListe.java
Question 1: analyse d'une interface et d'une classe
1.1.a: Quel type d'interface est utilisée ?
1.1.b: Quel type de classe implémentant l'interface précédente est utilisée ?
1.1.c: quelle méthode permet d'insérer des éléments ?
1.1.d: quelle méthode permet de retirer des éléments ?
1.1.e: quel est le nom de la méthode crée qui affiche les éléments de la liste ? quels sont ses paramètres ? que veut dire final ?
1.1.f: y a t'il quelque chose de nouveau dans la boucle for de la méthode afficherListe() ? comment s'appelle cette construction ?
1.1.g: faites une recherche pour donner les avantages et inconvénients de la technique utilisée et présentée en 1.1.f
1.2: ajouter le code suivant à la fin:
afficherListe("sous liste", sousListe);
System.out.println("");
Que se passe t'il ? Pourquoi ?
Question 2: analyse d'un itérateur
2.1: nous allons utiliser un itérateur plutôt que de faire une boucle for ... each
- enlever le code ajouté en 1.2
- remplacer le code de la méthode afficherListe() par le code ci dessous
Iterator<String> moniterateur = testListePersonnage.iterator();
int i = 0;
while (moniterateur.hasNext()) {
System.out.format("%s %2d : %s\n", nom, i, moniterateur.next()) ;
i++ ;
2.1.a. Qu'est ce que un Iterator ?
2.1.b: A quoi s'applique t'il et comment se déclare t'il ?
2.1.c: Quelles sont ses méthodes et à quoi servent elles ?
2.2: Lisez votre cours et donnez la liste des classes qui implémentent l'interface List
2.3: remplacez la classe ArrayList par la classe Vector. Que se passe t'il ? Qu'en concluez vous ?
2.4: remplacez la classe Vector par la classe LinkedList. Que se passe t'il ? Qu'en concluez vous ?
2.5: quelles méthodes de LinkedList sont spécifiques ? utilisez une de ses méthodes pour que l'item "Clerc" apparaisse en 1ère
position
Question 3: initialisation d'une liste à partir d'un tableau
Java propose 2 méthodes pour initialiser une liste à partir d'un tableau: la méthode asList() de la classe Arrays et la méthode
addAll() de la classe Collections.
La méthode Collections.addAll() est la meilleure solution car elle copie les éléments. Les deux objets peuvent alors être modifiés de
manière indépendante.
3.1.a: ajouter le code suivant à la fin de TestListe :
String[] tableau = { "Gandalf", "Aragorn", "Bilbo", "Eolas" };
List<String> listeCopiee = new ArrayList<String>();
Collections.addAll(listeCopiee, tableau);