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; } } |