Difference between Iterator and ListIterator


Iterator:

Using Iterator we can iterate only in forward direction and you cannot add elements while iterating and Here cursor always points to specific index.

Example:

 
public class Example {

  public static void main(String[] args) {

    ArrayList aList = new ArrayList();

    aList.add("1");
    aList.add("2");
    aList.add("3");
    aList.add("4");
    aList.add("5");

    Iterator itr = aList.iterator();

    while(itr.hasNext())
      System.out.println(itr.next());

  }
}


ListIterator:

Allows the programmer to traverse the list in either direction, modify the list during iteration, and obtain the iterator’s current position in the list. A ListIterator has no current element; its cursor position always lies between the element that would be returned by a call to previous() and the element that would be returned by a call to next().

Example:

public class sample {

  public static void main(String[] args) {
    //create an object of ArrayList
    ArrayList aList = new ArrayList();

    //Add elements to ArrayList object
    aList.add("1");
    aList.add("2");
    aList.add("3");
    aList.add("4");
    aList.add("5");

    //Get an object of ListIterator using listIterator() method
    ListIterator listIterator = aList.listIterator();

    System.out.println(" forward direction using ListIterator");
    while(listIterator.hasNext())
      System.out.println(listIterator.next());

    System.out.println("reverse direction using ListIterator");
    while(listIterator.hasPrevious())
      System.out.println(listIterator.previous());

  }
}

try the above code and get back to me :)

4 thoughts on “Difference between Iterator and ListIterator

  1. Krishna M November 23, 2012 / 12:21 pm

    Really nice explantion

  2. samir August 11, 2013 / 1:38 pm

    Hi,
    Can you please explain me with example how can u “modify the list during iteration”(this is what you have mentioned in your above blog)

    • Mallik August 12, 2013 / 4:12 pm

      You can use the alist.add(“xyz”); in loop so that list will be updated during iteration…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.