Académique Documents
Professionnel Documents
Culture Documents
Master WISD
AU: 2017/2018
Introduction
Une collection regroupe plusieurs données de même type (nature), qui sont
ses éléments.
Les éléments d'une collection sont des références à des objets (instances de
classe ou tableaux).
Les éléments ne peuvent pas être des valeurs primitives (int float, …).
Exemples : rayon de produits, liste d’étudiants, ...
Une structure collective implante une collection
Objectifs:
adapter la structure collective aux besoins
11/12/2017 A.Y. 2
Introduction
Trois sortes de structures de données:
Tableaux:
accès par index
inconvénient: taille
Collections:
accès séquentiel : premier, suivant
recherche, modification
Les Maps :
structure modifiable
11/12/2017 A.Y. 3
Opérations sur les tableaux
11/12/2017 A.Y. 6
Méthodes des collections
Principales méthodes communes:
boolean add(Object) : ajouter un élément
boolean addAll(Collection) : ajouter plusieurs éléments
void clear() : supprimer tous les éléments
boolean remove(Object) : Supprimer l’élément indiqué
boolean removeAll(Collection) : Supprimer plusieurs éléments
boolean contains(Object) : tester l'appartenance
boolean containsAll(Collection) : tester l’appartenance collective
boolean retainAll(Collection) : déterminer l’intersection
int size() : récupérer nombre d'éléments (taille)
boolean isEmpty() : vérifier si vide
Iterator iterator() : pour parcourir
Object[] toArray() : récupérer les éléments dans un tableau
11/12/2017 A.Y. 7
Caractéristiques des collections
Ordonnées ou non
Ordre sur les éléments
Accès
indexé
Séquentiel (Iterator )
11/12/2017 A.Y. 8
Les listes
Classes implantent l'interface List
ArrayList
tableau dynamique
11/12/2017 A.Y. 9
Les ensembles
Classes implantent l'interface Set
Eléments non dupliqués
HashSet
o table de hashage
o accès très performant aux éléments
TreeSet
o arbre binaire de recherche
o maintient l'ensemble trié en permanence
11/12/2017 A.Y. 10
Les Maps
Une map est appelée aussi table associative ou dictionnaire
une map fonctionne avec deux éléments
l'élément clé (de type K)
11/12/2017 A.Y. 11
Les Maps
Quelques méthodes :
V put(K key, V value): insérer un couple clé/valeur et supprime si il existe le
couple clé/valeur précédent ayant la même clé, renvoie l'ancienne valeur ou
null.
V get(Object key): renvoyer la valeur correspondant à la clé ou null si il n'y
11/12/2017 A.Y. 12
Généricité des algorithmes
Utiliser uniquement les méthodes communes
Parcours des éléments de la collection : Iterator
accès indexé pas toujours disponible (méthode get())
Exemple:
List liste= new ArrayList ();
Iterator it = liste.iterator();
while (it.hasNext())
//traitement: it.next()
11/12/2017 A.Y. 13
Collection paramétrée
■ Les collections sont homogènes, elle contiennent des éléments qui ont le
même type (pas forcément la même classe).
■ Elles sont paramétrés par une variable de type ( souvent nommée E ou T
pour indiquer le type d'un élément).
■ Les collections ne sont pas spécialisées pour les types primitfs (de base), ce
sont des collections d'objet.
11/12/2017 A.Y. 14
Interopération
Collection vers les tableaux: Collection.toArray()
Tableau vers Collection: Collections.addAll()
Tableau vers List: Arrays.asList()
List vers List: list.subList()
Deque vers Queue: Collections.asLifoQueue()
Map vers Set: Collections.newSetFromMap()
Map vers l'ensemble des clés: map.keySet()
Map vers la collection des valeurs: map.values()
Map vers l'ensemble des couples clé/valeur: map.entrySet()
11/12/2017 A.Y. 15
En cours de préparation
11/12/2017 A.Y. 16