Upload
alvery-le-gal
View
107
Download
0
Embed Size (px)
Citation preview
Chapitre 21
Collections Partie I
2
21.1 Introduction
Une collection : est un objet qui regroupe multiple éléments dans une unité.
Une collection est utilisée pour stocker, manipuler et communiquer un agrégat de données.
Exemples des agrégats de données : un bottin téléphonique, une collection de musique, un dossier de courriers etc.
3
21.2 vue d’ensemble des collections Collection
Une structure de données. La suite de collections Java :
Contient des Interfaces qui définissent les opérations à réaliser d’une façon générique sur différents type de collections.
Offre des implémentation de haute performance et de haute qualité sur les structure de données communes.
Favorise la réutilisation de code.
4
Les interfaces de la suite de collections
5
21.3 Classe Arrays
Classe Arrays Fournit des méthodes static de manipulation
des tableaux Fournit des méthodes de haut niveau :
La méthode binarySearch La méthode equals La méthode fill La méthode sort
Exemple Fig21_1
6
La suite collections Java
Offre de manipuler des éléments d’un type de collection par l’entremise d’un autre type de collection.
La classe Arrays fournit la méthode static asList qui permet de manipuler un tableau comme si c’était une liste.
Exemple Fig21_2
7
21.4 Interface Collection et classe Collections
Interface Collection L’interface racine dans la hiérarchie des collections Les interfaces Set, Queue, List étendent l’interface Collection Set – une collection qui ne contient pas de doublon List – une collection ordonnée qui peut contenir des
éléments en double Contient des opérations globales :
Ajout, suppression, comparaison et conservation d’objets Fournit une méthode de récupération d’objet
Itérateur (iterator)
8
21.4 Interface Collection et classe Collections La classe Collections
Fournit des méthodes static qui manipule des collections d’une façon polymorphe Recherche Tri Etc.
9
21.4 Interface Collection et classe Collections Collection est souvent utilisé comme type de
paramètres d’une méthode. Ceci permettre le traitement polymorphe de collections.
10
21.5 Listes
List Une collection ordonnée qui peut contenir des
doublons Aussi appelé séquence Les classes qui implémentent l’interface List :
ArrayList LinkedList Vector
11
21.5.1 ArrayList
Une implémentation tableau de l’interface List Équivalent à Vector, mais non synchronisé. Permet des manipulations sur la taille de la
liste : ensureCapacity size trimToSize
Exemple Fig21_3
12
L’interface Itérator
Permet de parcourir une collection Permet de retirer un élément de la collection
en utilisant la méthode remove de l’interface Iterator.
L’emploi de la méthode remove de l’interface Collection en même temps provoque une ConcurrentModificationException
Fail-fast
13
Les méthodes de l’interface Iterator hasNext() next() remove()
14
21.5.2 LinkedList
Liste chaînée ArrayList est implémenté avec un tableau,
donc plus efficace en terme d’espace mémoire et l’accès est plus rapide.
LinkedList utilise une structure chaînée, demande plus d’espace mémoire et l’accès aléatoire est plus lent. Mais lorsque l’on fait beaucoup de modifications au milieu de la liste, LinkedList est plus efficace.
15
21.5.2 LinkedList
Exemple Fig21_4
16
L’interface ListIterator
Étend l’interface Iterator, permet de traverser une liste dans deux sens.
Méthodes : hasNext next hasPrevious previous Remove add set
17
ListIterator
On peut voir un itérateur comme un curseur Il est toujours placé entre deux éléments
18
La méthode List.subList
subList est permet d’obtenir une sous liste Représente une vue de la liste mère. L’opération sur la sous liste répercute à la
liste : par exemple : uneList.subList(2,5).clear() supprime l’élément 2 à
4 de la liste mère.
19
La méthode toArray
La méthode toArray de l’interface List permet d’obtenir un tableau à partir d’une liste en copiant tous les éléments de la liste vers le tableau.
Les opérations sur le tableau ne se reflètent pas sur la liste.
Exemple Fig21_5
20
Documentation sur la suite de collections
http://java.sun.com/docs/books/tutorial/collections/index.html