Iterator vs ListIterator in Java

Iterator ListIterator
Can traverse all the collections including set, map, etc. It can be used to traverse only list type collection like ArrayList, LinkedList.
Iterates the collection only in the forward direction. Can iterate over the collection in forward as well as backward direction.
Cannot obtain indexes. Can obtain indexes.
No way to add new elements to the collection. You can add new elements to the collection.
Iterator cannot modify the elements during iteration. ListIterator can modify the elements in the collection using the set() method.