Interface itérateur
1. Interface itérateur
Itérable
Intégration de méthode ITERATOR () Renvoie un itérateur nouvellement créé.
comme:
Interface publique iTable {iterator iterator (); } Iterator a deux méthodes: Hasnext () et Next () à implémenter. Interface publique Iterator {boolean Hasnext (); Item suivant (); void retire (); // implémentation facultative}
2. Implémentez l'importation
Importer java.util.iterator;
Classes génériques, implémentation de l'interface itérable implémente iTable <élément>
Implémente la méthode Iterator () d'Itable, renvoyant tout type d'itérateur défini.
Définir le type d'itérateur implémente l'itérateur <élément>
Implémenter Hasnext (), Next () et Remove ()
3. Exemple:
La classe publique Stack <Item> implémente iTable <teticle> {public Iterator <Item> iterator () {return new ListIterator <Item> (premier); } ListeTiterator de classe privée <Item> implémente Iterator <Item> {Node privé <élément> Current; public listIterator (nœud <temment> first) {current = premier; } public boolean hasnext () {return current! = null; } public void dissovel () {lance un nouveau non support-operationxception (); } élément public suivant () {if (! Hasnext ()) Jetez un nouveau NosuchementElementException (); Item item = current.item; courant = current.next; return item; }}} 4. Méthodes d'appel
itération foreach
pour (String S: Stack) System.out.println (S);
S'il s'agit d'un type de base tel que int / double, veuillez utiliser la relation de conversion précédente
5. Traversion en boucle
Iterator i = stack.iterator (); while (i.hasnext ()) {String s = i.next (); }Interface d'énumération
L'énumération est une classe d'interface dans java.util. Dans l'énumération, il résume les méthodes sur l'énumération des ensembles de données. Il est similaire à Iterator. Il est utilisé pour traverser les éléments de la collection. Cependant, l'énumération de l'énumération ne fournit que la fonction des éléments de traversée du vecteur et des collections de types de hachage. Ce type d'objet de collection obtient un objet d'énumération en appelant la méthode Elements (), puis appelle les méthodes suivantes pour traverser les éléments de la collection.
HasmoreElements (): détermine s'il y a encore des données dans l'objet d'énumération
nextElement (): obtenez les données suivantes dans l'objet d'énumération
Les exemples sont les suivants:
Énumération req = request.getParameTernames (); while (req.hasmoreElements ()) {objet obj = (objet) req.nextelement (); if (obj.toString (). Trim (). Equals ("LastPage")) {System.out.println ("LastPage / N"); } else if (obj.toString (). Trim (). Equals ("NextPage")) {System.out.println ("NextPage"); }} La différence entre itérateur et énumération
Dans les collections Java, nous traversons généralement la collection via "Iterator" ou "Classe d'énumération". Aujourd'hui, découvrons les différences entre elles.
Examinons d'abord les codes source de Enumeration.Java et Iterator.Java, puis parlons de leurs différences.
L'énumération est une interface, et son code source est le suivant:
package java.util; énumération d'interface publique <e> {boolean HasmoreElements (); E nexttelement ();} Iterator est également une interface, et son code source est le suivant:
package java.util; interface publique Iterator <e> {boolean hasnext (); E suivant (); void reous ();} Après avoir lu le code, parlons de la différence entre eux.
(01) Interfaces de fonction différentes
L'énumération n'a que 2 interfaces de fonction. Grâce à l'énumération, nous ne pouvons lire les données de la collecte, mais nous ne pouvons pas modifier les données.
Iterator n'a que 3 interfaces de fonction. En plus de lire les données de la collecte, Iterator peut également supprimer les données.
(02) Iterator prend en charge le mécanisme de faillite, mais l'énumération ne le fait pas.
L'énumération est une interface ajoutée par JDK 1.0. Les fonctions utilisées incluent le vecteur, le hashtable et d'autres classes, qui sont toutes ajoutées dans JDK 1.0. Le but de l'énumération est de leur fournir une interface de traversée. L'énumération elle-même ne prend pas en charge la synchronisation, mais lorsque l'énumération du vecteur et de l'implémentation de hachage, une synchronisation est ajoutée.
Iterator est une interface ajoutée uniquement dans JDK 1.2. Il fournit également des interfaces de traversée pour les collections telles que HashMap et ArrayList. Iterator prend en charge le mécanisme de faillite: lorsque plusieurs threads fonctionnent sur le contenu de la même collection, un événement de faillite peut être généré.