Collections et shémas d'itération

Collections

Les API de Java fournissent une grande variété de structures de données, déjà codées avec leurs fonctionnalités, permettant de stocker et de manipuler des éléments. Ces structures de données sont appelées de façon générique des collections et sont représentées par l'interface Collection du package java.util. En réalité, certaines structures de données appelées table et représentées par l'interface Map ne sont pas considérées comme des collections: la hierarchie des principales classes concernées est donnée par le schéma à la fin de cette page.

En fait, cette interface est la plus générale de toutes les collections et possède différents sous-types (sous-interfaces et/ou classes abstraites) qui conduisent à quelques classes concrètes implantant des fonctionnalités de types de collection particuliers. Le dessin ci-dessous représente schématiquement leur organisation.


La hiérarchie des collections

Les deux grandes catégories de collections sont :

Shémas d'itération

Un itérateur (interface Iterator) est un objet qui permet de parcourir les éléments d'une collection. Un itérateur possède deux méthodes essentielles de noms hasNext() et next. La première méthode permet de savoir s'il reste des éléments à parcourir alors que la seconde retourne l'élément courant et fait avancer l'itérateur qui passe à l'élément suivant. Il faut toujours vérifier avec hasNext qu'il reste encore des éléments avant d'appeler next(). Chacune des collections possède une méthode iterator() qui retourne un itérateur permettant de parcourir ses éléments. Une boucle typique pour parcourir les éléments d'une collection c a la forme.

  for (Iterator it = c.iterator(); it.hasNext(); ) {
     Object o = it.next());
     ...
  }

Cet boucle typique peut aussi être écrite de la façon suivante.

  for (Object o : c) {
     ...
  }

Associations


La hiérarchie des maps