Adsense

Thursday, 8 August 2013

Java:Iterators Vs Enumeration


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.ArrayList;
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