Enumeration vs Iterator
Es gibt viele Datenstrukturen, die als Sammlungen in Java fungieren, wie beispielsweise Vektoren, Hash-Tabellen und Klassen, die Java Collections Framework implementieren (d. H. HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap und LinkedHashSet). Es gibt zahlreiche Möglichkeiten, die einzelnen Elemente der Objekte in Java zu durchlaufen. Java bietet zwei Schnittstellen, um diese Aufgabe zu erleichtern. Enumeration und Iterator sind zwei der Schnittstellen im Paket java.util, die Funktionen zum Auflisten von Sequenzen oder Objekten mit einer Reihe von Elementen bereitstellen. Enumerator wurde in JDK 1.0 eingeführt, und Iterator, der in JDK 1.2 eingeführt wurde, dupliziert praktisch die Funktionalität des Enumerators (innerhalb des Collections Framework)..
Was ist Aufzählung??
Die Aufzählung ist eine öffentliche Schnittstelle in Java, die in JDK 1.0 eingeführt wurde. Sie bietet die Möglichkeit, Elementfolgen durchzusehen. Es befindet sich unter java.util package. Wenn die Aufzählungsschnittstelle von einem Objekt implementiert wird, kann dieses Objekt eine Folge von Elementen generieren. Die Aufzählungsschnittstelle hat zwei Methoden. Die Methode hasMoreElements () prüft, ob diese Aufzählung mehr Elemente enthält, und nextElement () gibt das nächste Element in der Sequenz zurück (wenn mindestens ein weiteres Element vorhanden ist). Mit anderen Worten kann der Programmierer durch aufeinanderfolgendes Aufrufen von nextElement () auf die einzelnen Elemente der Serie zugreifen. Um beispielsweise alle Elemente in Vector v1 mit Enumerator zu drucken, kann das folgende Codefragment verwendet werden.
Aufzählung e = v1.elements ();
While (e.hasMoreLements ())
System.out.println (e.nextElement ());
Enumerator kann auch verwendet werden, um den Eingabestrom für die SequenceInputStream-Objekte zu definieren.
Was ist Iterator??
Iterator ist eine öffentliche Schnittstelle im Java.util-Paket, die das Durchlaufen von Elementen der Collections-Objekte ermöglicht, die das Collections-Framework implementieren (wie ArrayList, LinkedList usw.). Dies wurde in JDK 1.2 eingeführt und ersetzte den Enumerator innerhalb des Java Collections Framework. Iterator hat drei Methoden. Die Methode hasNext () prüft, ob noch Elemente in der Auflistung vorhanden sind, und die next () - Methode gibt das nächste Element in der Reihe zurück. Die remove () - Methode kann verwendet werden, um das aktuelle Element aus der zugrunde liegenden Auflistung zu entfernen. Um beispielsweise alle Elemente in Vector v1 mit Iterator zu drucken, kann der folgende Code-Snippet verwendet werden.
Iterator i = v1.elements ();
While (i.hasNext ())
System.out.println (e.next ());
Was ist der Unterschied zwischen Enumeration und Iterator??
Obwohl Enumeration und Iterator zwei der im Paket java.util enthaltenen Interfaces sind, die das Durchlaufen von Elementen einer Reihe ermöglichen, unterscheiden sie sich. Tatsächlich ersetzt Iterator, das nach Enumeration eingeführt wurde, die Enumeration innerhalb des Java Collections-Frameworks. Im Gegensatz zu Enumeration ist Iterator ausfallsicher. Dies bedeutet, dass gleichzeitige Änderungen (an der zugrunde liegenden Sammlung) nicht zulässig sind, wenn Iterator verwendet wird. Dies ist sehr nützlich in Umgebungen mit mehreren Threads, in denen immer das Risiko gleichzeitiger Änderungen besteht. Bei einer gleichzeitigen Änderung löst das Iterator-Objekt eine ConcurrentModificationException aus. Iterator hat im Vergleich zu Enumerator kürzere Methodennamen. Darüber hinaus bietet der Iterator die zusätzliche Funktionalität, Elemente während der Iteration zu löschen (was mit dem Enumerator nicht möglich ist). Wenn Elemente aus der Sammlung entfernt werden müssen, ist Iterator die einzige Option, die in Betracht gezogen werden kann.