Iterators Vs Enumeration(Interfaces)
|
Iterators
|
Enumeration
|
|
Has following methods:
hasNext()
next()
remove()
|
Has following methods:
hasMoreElement()
nextElement()
|
|
Iterator is fail-fast*
|
enumeration of Vector isn't fail-fast
|
|
Don't allow a simultaneously navigation and
modification on an underlying object. Throws
ConcurrentModificationException, if so.
|
Read-only
|
|
Slower
|
Faster
|
*fail-fast:
When one thread changes the collection by any operations, while another thread is traversing it through an Iterator using
hasNext() or next() method, the iterator fails quickly by throwing ConcurrentModificationException Sample Code:import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
public class IterVsEnum {
public static void main(String[] args) {
ArrayList<String> myArList = new ArrayList<String>();
myArList.add("This");
myArList.add("is");
myArList.add("an");
myArList.add("example");
Iterator<String> it = myArList.iterator();
System.out.println(" For Iterator: ");
while(it.hasNext()){
System.out.print(it.next()+", ");
}
Vector<String> vect = new Vector<String>(myArList);
Enumeration<String> enu = vect.elements();
System.out.println("\n\n For Enumeration: ");
while(enu.hasMoreElements()){
System.out.print(enu.nextElement()+", ");
}
}
}
No comments:
Post a Comment