Iteratorschnittstelle
1. Iterator -Schnittstelle
Iterbar
Integrierte Methode Iterator () gibt einen neu erstellten Iterator zurück.
wie:
public interface iterable {iterator iterator (); } Iterator hat zwei Methoden: HasNext () und Next () implementieren. public interface iterator {boolean hasNext (); Artikel als nächstes (); Hohlraum entfernen (); // Optionale Implementierung}
2. Importieren
Import Java.util.iterator;
Generische Klassen implementieren iterable Schnittstelle implementiert iterable <element>
Implementiert die Iterator () -Methode von Iterable, wobei der definierte Iterator -Typ zurückgegeben wird.
Definieren Sie den Iteratortyp implementiert Iterator <Item>
Implementieren Sie HasNext (), Next () und REMET ()
3. Beispiel:
öffentliche Klasse Stack <Item> implementiert iterable <element> {public iterator <Etil> iterator () {neuer Listiterator <Etil> (zuerst); } private Klasse ListIterator <Item> implementiert Iterator <Item> {private Knoten <element> aktuell; public listIterator (Knoten <element> zuerst) {current = First; } public boolean hasNext () {return current! = null; } public void remove () {neue nicht unterstützte OperationException (); } public item next () {if (! hasNext ()) werfen neue noSuchelementException (); Item item = current.item; current = current.Next; Gegenstand zurückgeben; }}} 4. Methoden aufrufen
für die Iteration
für (String S: Stack) system.out.println (s);
Wenn es sich um einen Basistyp wie int/double handelt, verwenden Sie bitte die vorherige Conversion -Beziehung
5. Looping Traversal
Iterator i = stack.iterator (); while (i.hasnext ()) {string s = i.Next (); }Aufzählungschnittstelle
Die Aufzählung ist eine Schnittstellenklasse in Java.util. In der Aufzählung fasst es Methoden über die Aufzählungsdatensätze zusammen. Es ähnelt Iterator. Es wird verwendet, um Elemente in der Sammlung zu durchqueren. Die Aufzählung der Aufzählung liefert jedoch nur die Funktion des Durchquerens von Elementen der Vektor- und Hashtable -Kollektionen. Diese Art von Sammelobjekt erhält ein Aufzählungobjekt, indem er die Methode Elements () aufruft und dann die folgenden Methoden aufruft, um Elemente in der Sammlung zu durchqueren.
Has MoreElements (): Bestimmt, ob im Aufzählungsobjekt noch Daten vorhanden sind
NextElement (): Holen Sie sich die nächsten Daten im Aufzählungsobjekt
Beispiele sind wie folgt:
Enumeration req = request.getParameternames (); while (req.hasmoreElements ()) {Object obj = (Object) req.NextElement (); if (obj.toString (). trim (). Equals ("lastPage") {System.out.println ("lastPage /n"); } else if (obj.toString (). trim (). Equals ("NextPage") {System.out.println ("NextPage"); }} Der Unterschied zwischen Iterator und Aufzählung
In Java -Sammlungen durchqueren wir die Sammlung normalerweise durch "Iterator" oder "Aufzählungsklasse". Lassen Sie uns heute gemeinsam die Unterschiede zwischen ihnen gemeinsam kennenlernen.
Schauen wir uns zunächst die Quellcodes von Enumeration.java und Iterator.java an und sprechen Sie dann über ihre Unterschiede.
Die Aufzählung ist eine Schnittstelle, und ihr Quellcode lautet wie folgt:
Paket java.util; Public Interface Enumeration <e> {boolean hasMoreElements (); E NextElement ();} Iterator ist auch eine Schnittstelle, und sein Quellcode lautet wie folgt:
Paket java.util; public interface iterator <e> {boolean hasNext (); E als nächstes (); void remove ();} Lassen Sie uns nach dem Lesen des Codes über den Unterschied zwischen ihnen sprechen.
(01) Unterschiedliche Funktionsoberflächen
Die Aufzählung hat nur 2 Funktionsoberflächen. Durch die Aufzählung können wir nur die Daten der Sammlung lesen, die Daten nicht ändern.
Iterator hat nur 3 Funktionsoberflächen. Neben dem Lesen der Daten der Sammlung kann Iterator auch die Daten löschen.
(02) Iterator unterstützt den fehlgeschnittenen Mechanismus, die Aufzählung jedoch nicht.
Die Aufzählung ist eine Schnittstelle, die von JDK 1.0 hinzugefügt wurde. Zu den verwendeten Funktionen gehören Vektor, Hashtable und andere Klassen, die alle in JDK 1.0 hinzugefügt werden. Der Zweck der Aufzählung ist es, ihnen eine Traversal -Schnittstelle zu bieten. Die Aufzählung selbst unterstützt nicht die Synchronisation, aber wenn Vektor und Hashtable Aufzählung implementieren, wird die Synchronisation hinzugefügt.
Iterator ist eine Schnittstelle, die nur in JDK 1.2 hinzugefügt wird. Es bietet auch Traversal -Schnittstellen für Sammlungen wie HashMap und ArrayList. Der Iterator unterstützt den fehlgeschnittenen Mechanismus: Wenn mehrere Threads auf dem Inhalt derselben Sammlung arbeiten, kann ein fehlgeschlechtliches Ereignis generiert werden.