We can traverse the elements in a List using Iterator in a forward direction. Using ListIterator, we can traverse the elements in the forward and backward direction both. Iterator can be used in these collection types: List, Set, and Queue. ListIterator can be used in List collection only. Iterator has the following functionalities: boolean hasNext() E next() void remove() ListIterator has the following functionalities: void add (E e) boolean hasNext() boolean hasPrevious() void remove() Iterator can only perform remove operation while traversing the elements in a collection. If we try to add elements, it will throw ConcurrentModificationException. ListIterator can perform add, remove operation while traversing the elements in a collection. We won’t get any exception while adding element using ListIterator.