Les collections

 

Introduction

Les collections permettent de gérer des ensembles d'objets. Le package java.util contient plusieurs classes de collections. Ces classes ayant comme avantage de ne pas avoir de limite de taille. Suivant l'ensemble d'objets, un élément sera associé à un indice comme n° d'ordre, soit une clé qui l'identifie de manière unique.

 

Collections vs tableaux

- Les tableaux ne sont pas redimensionnables.

- L'insertion d'un élément n'est pas aisé, car il faut déplacer tous les éléments qui suivent la position de l'élément insérée.

- Les indices sont forcement des entiers.

...

 

Les différentes collections

Les collections par indice (démarrant à 0 et s'incrémentant)

ArrayList pour ajouter des éléments les uns après les autres dans un ensemble ordonné.

LinkedList pour insérer de nombreux éléments dans un ensemble ordonné. Utilisée aussi pour créer une pile LIFO.

Les collections par objets uniques

HashSet pour des éléments uniques dans un ensemble. La recherche étant optimisée pour ce type d'éléments.

TreeSet pour gérer un ensemble trié d'objets uniques.

Les collections par clef (unique)

HashMap pour utiliser une clef sur des éléments.

TreeMap pour gérer un ensemble d'éléments triés sur leur clef d'accès.

 

Typage des collections

Depuis JAVA 5, il est possible de typer les collections (on parlera aussi de généricité par exemple la généricité par les classes de collections).

Sans le typage, seule la classe java.lang.Object est utilisée comme classe des éléments stockés. Avec le typage, vous pouvez préciser la classe utilisée.

L'intérêt étant de ne plus avoir à caster quoique ce soit par la suite !!!

L'écriture est alors la suivante:

Collection <E> ou E est le typage des éléments.

Exemple :

LinkedList<Integer> maPile = new LinkedList<Integer>();

Image non trouvée !Pour la HashMap, nous indiquerons la classe des clés et la classe des éléments:

HashMap <String, String> monHashMap = new HashMap<String, String> ();

 

Exemple

Sans utilisation du typage le code donne ceci:

Avec l'utilisation du typage: