Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

não entendi o funcionamento das funções: interator() e ListInterator()

Alguém pode me dar um código de exemplo???

5 respostas

Boa tarde Ricardo,

O método iterator() é um metodo da classe abstrata AbstractCollection.

Vendo a documentação classe ArrayList, vemos que é um método implementado nesta classe e cujo retorno é Iterator<E> ou seja, um Iterator do tipo de elemento que esta lista contém (Strings, Integers, Objects ou algum outro tipo).

Exemplo:

ArrayList<Integer> list = new ArrayList<Integer>();
// adicionando alguns elementos na lista
Iterator itr = list.iterator(); 

while(itr.hasNext() ) {
   Integer integer = (Integer) itr.next(); // pois next devolve Object
   System.out.println(integer);
}

ListIterator, pelo que pesquisei, é uma interface. Além disso, lendo a documentação da interface List, temos o seguinte trecho:

"The List interface provides a special iterator, called a ListIterator, that allows element insertion and replacement, and bidirectional access in addition to the normal operations that the Iterator interface provides. A method is provided to obtain a list iterator that starts at a specified position in the list."

Ou seja, é um iterador especial, com mais funcionalidades que o clássico Iterator.

Além disso, ainda conforme a documentação de ListIterator, é uma subinterface de Iterator.

Um exemplo com listIterator() pode ser encontrado neste link. Você também pode ver mais comportamentos da ListIterator neste link.

Espero ter ajudado. Avisa aí se tiver mais dúvidas.

Abraço.

Tentei usar o código e ele da um monte de erros, tento arruma-los com eclipse mas não adianta...

ArrayList list = new ArrayList(); // adicionando alguns elementos na lista Iterator itr = list.iterator();

while(itr.hasNext() ) { Integer integer = (Integer) itr.next(); // pois next devolve Object System.out.println(integer); }

solução!

Oi Ricardo,

Quais erros que dá?

Adianto que ArrayList é do pacote java.util, logo deve-se fazer o import.

Oi consegui, estava fazendo um import errado, obrigado

Ricardo,

Caso tenha sanado sua dúvida, por favor, marque o tópico como solucionado, deste modo se mais alguém tiver o mesmo problema que o seu, pode consultar este tópico pra resolver o problema.

Abraço e bons estudos.