L'interface Enumeration fournit seulement deux méthodes permettant de parcourir les éléments d'un vecteur, les clés et les valeurs d''une table de hachage.
Vector vecteur = new Vector(); Enumeration enumeration = vecteur.elements(); Hashtable tableHachage = new Hashtable(); Enumeration enumValeur = tableHachage.elements(); Enumeration enumCle = tableHachage.keys();
Les objets implémentant l'interface Enumeration génère une série d'éléments à partir d'une liste ou d'un map, par l'intermédiaire de la méthode nextElement() qui retourne un élément des collections précitées et la seconde méthode hasMoreElements() teste s'il n'y a plus d'éléments dans l'objet Enumeration.
| Les méthodes |
|---|
| boolean hasMoreElements() |
| retourne true si l'énumération n'a plus d'éléments. |
| Object nextElement() |
| retourne le prochaîn élément de l'itérateur. |
Le fonctionnement de l'interface Enumeration consiste à obtenir un énumérateur à partir de la collection courante, puis au sein d'une boucle permettant d'accéder à chaque élément (nextElement()), vérifier dans la condition d'arrêt si l'énumérateur ne comporte plus d'éléments (hasMoreElement()).
Enumeration e = vecteur.elements();
while (!e.hasMoreElements()) {
System.out.println(e.nextElement());
}
L'interface Enumeration a été abandonnée au bénéfice de l'interface Iterator possédant des noms de méthode plus courts, et surtout ajoutant une fonctionnalité supplémentaire, une opération de suppression.
Exemple [voir]import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
public class CollectionEnumeration {
public static void main(String[] args) {
Vector vecteur = creerVecteur();
for (Enumeration enumerateur =
vecteur.elements() ; enumerateur.hasMoreElements() ;) {
System.out.println(enumerateur.nextElement());
}
int j = 1;
Hashtable tableHachage = creerTableHachage();
for (Enumeration enumValeur =
tableHachage.elements(); enumValeur.hasMoreElements() ;) {
System.out.println(j++ + " : " + enumValeur.nextElement());
}
j = 0;
for (Enumeration enumCle =
tableHachage.keys(); enumCle.hasMoreElements() ;) {
System.out.println(j++ + " : " + enumCle.nextElement());
}
}
public static Vector creerVecteur(){
Vector vecteur = new Vector();
for(int i = 1; i <= 7; i++){
vecteur.add(new Integer(i));
}
return vecteur;
}
public static Hashtable creerTableHachage(){
String[] joursSemaine = {"lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi", "dimanche"};
String[] daysOfWeek = {"sunday", "monday", "tuesday", "wednesday",
"thursday", "friday", "saturday"};
Hashtable tableHachage = new Hashtable();
for(int i = 0; i < joursSemaine.length; i++){
tableHachage.put(daysOfWeek[i < joursSemaine.length - 1 ? i+1 : 0],
joursSemaine[i]);
System.out.println(tableHachage.toString());
}
return tableHachage;
}
} |