Iterator é uma super classe de ListIterator.
Aqui estão as diferenças entre eles:
- Com
iteratorvocê, você pode avançar apenas, mas com ListIteratorvocê pode voltar também ao ler os elementos.
- Com
ListIteratorvocê pode obter o índice a qualquer momento durante a navegação, o que não é possível com iterators.
- Com
iteratorvocê pode verificar apenas o próximo elemento disponível ou não, mas listiteratorpode verificar os elementos anteriores e seguintes.
- Com
listiteratorvocê pode adicionar novo elemento a qualquer momento, enquanto estiver percorrendo. Não é possível com iterator.
- Com
listiteratorvocê, você pode modificar um elemento ao atravessar, o que não é possível com iterator.
Aparência e sensação do iterador:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove(); //optional-->use only once with next(),
dont use it when u use for:each
}
Aparência do ListIterator:
public interface ListIterator<E> extends Iterator<E> {
boolean hasNext();
E next();
boolean hasPrevious();
E previous();
int nextIndex();
int previousIndex();
void remove(); //optional
void set(E e); //optional
void add(E e); //optional
}