Iterator | ListIterator |
Iterator is used for traversing List and Set both. | We can use ListIterator to traverse List only, we cannot traverse Set using ListIterator. |
We can traverse in only forward direction using Iterator. | Using ListIterator, we can traverse a List in both the directions (forward and Backward). |
We cannot obtain indexes while using Iterator. | We can obtain indexes at any point of time while traversing a list using ListIterator. The methods nextIndex() and previousIndex() are used for this purpose. |
We cannot add element to collection while traversing it using Iterator, it throws ConcurrentModificationException when you try to do it. | We can add element at any point of time while traversing a list using ListIterator. |
We cannot replace the existing element value when using Iterator. | By using set(E e) method of ListIterator, we can replace the last element returned by next() or previous() methods. |
Methods of Iterator: hasNext() next() remove() | Methods of ListIterator: add(E e) hasNext() hasPrevious() next() nextIndex() previous() previousIndex() remove() set(E e) |
package com.collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class IteratorVsListIterator {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("rajesh");
list.add("sattu");
list.add("shan");
System.out.println("iterator :");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
ListIterator<String> listItr = list.listIterator();
System.out.println("List Iterator : next");
while (listItr.hasNext()) {
System.out.println(listItr.next());
listItr.add("rahul");
}
System.out.println("List Iterator : previous");
while (listItr.hasPrevious()) {
System.out.println(listItr.previous());
}
}
}
No comments:
Post a Comment