suivant: 6.3 Réalisations d'une collection
monter: 6. Collections
précédent: 6.1 Une discipline d'abstraction
  Table des matières
  Index
6.2 Les collections
Quelques unes des structures de données les plus utiles sont rassemblées
dans un ensemble cohérent de types figurant dans le paquet
java.util, autour du concept de collection. Une
collection représente un groupe d'objets, qui sont ses
éléments. De façon précise, les éléments d'une collection ne sont
pas des données, mais des références à des objets (instances de classe
ou tableaux) ; les éléments ne peuvent pas être des valeurs primitives.
Les principales opérations sur une collection sont :
- boolean add(Object o) ajoute un objet o et
retourne true si la collection a été modifiée par cette
opération, et false sinon ;
- boolean contains(Object o) teste l'appartenance d'un objet o ;
- boolean remove(Object o) retire un élément ;
- void clear() retire tous les éléments ;
- int size() retourne le nombre d'éléments ;
- boolean isEmpty() teste si la collection ne contient
aucun élément.
Comme les éléments d'une collection ne peuvent pas être des valeurs d'un
type primitif (char, int, double, etc.), il
faut recourir à un constructeur d'une classe enveloppante
(Character, Integer, Double, etc.) pour en
faire des instances de classe : par exemple, si c est une
collection, on ne pourra pas écrire c.add(2), mais
c.add(new Integer(2)).
Certaines collections acceptent des éléments dupliqués, certaines ont
une notion de position d'un élément, d'autres sont ordonnées ;
l'interface Collection, membre du paquet java.util,
qui spécifie toutes les collections, a donc plusieurs sous-interfaces
spécialisées :
- List spécifie
les listes ou suites, c'est-à-dire les collections
indexées par des entiers; la méthode int indexOf(Object o)
retourne l'indice de la première occurrence de o dans la
suite ; la méthode List subList(int initial, int final)
retourne une référence vers la sous-liste formée des éléments
d'indices
initial et
final ; la méthode
Object set(int i, Object o) remplace l'élément d'indice
i par l'objet o ; la méthode Object get(int
index) retourne l'élément d'indice i ; ces collections
admettent des éléments dupliqués, donc la méthode add
retourne toujours true.
-
Set spécifie les ensembles, c'est-à-dire les
collections dont les éléments ne sont pas dupliqués ; la
méthode add retourne true seulement si l'élément
n'est pas déjà contenu dans l'ensemble ;
-
SortedSet, sous-interface de Set spécifie les
ensembles ordonnés (par ordre croissant) par une relation d'ordre
sur ses éléments ; la méthode SortedSet subSet(Object
initial, Object final) retourne une référence vers le
sous-ensemble formé des éléments
initial et
final ; first() et last()
retournent respectivement le plus petit et le plus grand élément de
l'ensemble ordonné.
Les collections disposent d'opérations ensemblistes extrêmement utiles
permettant de tester l'appartenance de, d'ajouter ou de retirer tous les
éléments d'une collection à une autre collection. Ce sont les méthodes :
- boolean containsAll(Collection c), pour l'inclusion ;
- boolean addAll(Collection c), pour la réunion ;
- boolean removeAll(Collection c), pour la différence ;
- boolean retainAll(Collection c), pour l'intersection.
Les trois dernières retournent true si l'opération a modifié la
collection.
Les collections sont naturellement des structures de données
hétérogènes, c'est-à dire que leurs éléments ne sont pas nécessairement
tous du même type. On peut ainsi ajouter les éléments suivants à une liste
l :
l.add(new Integer(2));
l.add("Java");
l.add(java.awt.Color.red);
Les collections comprennent aussi une interface Map,
qui n'est pas une sous-interface de Collection, spécifiant les
tables, c'est-à-dire les collections associant une valeur à une
clé, les clés ne pouvant être dupliquées, et au plus une valeur étant
associée à chaque clé. Les principales méthodes sont :
- Object put(Object clé, Object valeur) insère une
association clé
valeur dans la table et
retourne l'objet précédemment associé à cette clé ou bien
null ;
- Object get (Object clé) retourne l'objet associé à
clé par cette table, ou bien null ;
- boolean containsKey (Object clé) teste si la table
contient une association pour la clé spécifiée en argument ;
- boolean containsValue (Object valeur) teste si la table
contient une association ayant la valeur spécifiée en argument ;
- Object remove (Object clé) retire de la table
l'association pour la clé spécifiée en argument et retourne la valeur
associée ou bien null si la table ne contient pas une telle
association.
SortedMap, sous-interface de Map spécifie
les tables dont l'ensemble des clés est ordonné.
- subMap(Object initial, Object final) retourne une référence
vers la sous-table formé des associations de clé
initial et
final ;
- firstKey() et lastKey() retournent
respectivement la plus petite et le plus grande clé de la table
ordonnée.
suivant: 6.3 Réalisations d'une collection
monter: 6. Collections
précédent: 6.1 Une discipline d'abstraction
  Table des matières
  Index
Rene' LALEMENT
2001-11-07