Recomendado, 2024

Escolha Do Editor

Diferença entre iterador e ListIterator em Java

O Iterator e ListIterator são os dois entre os três cursores de Java. O Iterator e o ListIterator são definidos pelo Collection Framework no pacote J ava.Util . ListIterator é a interface filho da interface Iterator. A principal diferença entre o Iterator e o ListIterator é que o Iterator pode percorrer os elementos na coleção apenas na direção para frente, enquanto o ListIterator pode atravessar os elementos em uma coleção na direção para frente e para trás .

Vamos discutir mais algumas diferenças entre Iterator e ListIterator com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para comparaçãoIteradorListIterator
BasicO iterador pode percorrer os elementos em uma coleção somente na direção direta.ListIterator pode percorrer os elementos em uma coleção na direção para frente e para trás.
AdicionarO iterador não consegue adicionar elementos a uma coleção.ListIteror pode adicionar elementos a uma coleção.
ModificarO iterador não pode modificar os elementos de uma coleção.ListIterator pode modificar os elementos em uma coleção usando set ().
AtravessarO iterador pode percorrer Mapa, Lista e Definir.ListIterator pode atravessar somente objetos List.
ÍndiceO iterador não possui um método para obter um índice do elemento em uma coleção.Usando ListIterator, você pode obter um índice do elemento em uma coleção.

Definição de Iterador

O iterador é uma interface em um framework de coleção . Ele é usado para percorrer os elementos da coleção. O iterador permite que você itere cada elemento na coleção um por um, obtenha elementos da coleção ou remova elementos da coleção. Você pode perceber que não é possível modificar nenhum elemento em uma coleção usando o Iterator.

O iterador possui um método iterator () que retorna o iterador para o início da coleção. Depois de obter um iterador para o início de uma coleção, em seguida, percorrer os elementos na coleção estabelecer um loop que chama hasNext () cada vez que o loop itera. O hasNext (), se retorna true, significa que o próximo elemento está lá na coleção e, se retornar false, significa que todos os elementos são atravessados. Em seguida, dentro do loop, você pode obter cada elemento em uma coleção usando next () . O método next () retorna o próximo elemento da coleção.

Recua:

Usando o iterador você pode percorrer uma coleção somente na direção direta.
Usando o Iterator, você não pode manipular ou modificar os elementos em uma coleção.

Definição de ListIterator

ListIterator é uma interface em uma estrutura Collection e estende a interface Iterator . Usando ListIterator, você pode percorrer os elementos da coleção nas direções para frente e para trás . Você também pode adicionar, remover ou modificar qualquer elemento da coleção. Em suma, podemos dizer que elimina as desvantagens do Iterator.

Os métodos do ListIterator são os seguintes:

hasNext () : Se retorna true, confirma que há mais elementos em uma coleção.
next () : Retorna os próximos elementos da lista.
nextIndex () : Retorna o índice dos próximos elementos da lista.
hasPrevious () : Retorna true se houver elementos na direção reversa em uma coleção.
previous () : Retorna o elemento anterior em uma coleção.
previousIndex () : Retorna o índice do elemento anterior em uma coleção.
remove () : Apaga o elemento de uma coleção.
set () : Modifica o elemento em uma coleção.
add () : Adiciona o novo elemento em uma coleção.

Principais diferenças entre iterador e ListIterator

  1. A diferença básica entre o Iterator e o ListIterator é que ambos sendo cursor, o Iterator pode atravessar elementos em uma coleção somente na direção de avanço. Por outro lado, o ListIterator pode percorrer as direções para frente e para trás.
  2. Usando iterador você não pode adicionar qualquer elemento a uma coleção. Mas, usando ListIterator você pode adicionar elementos a uma coleção.
  3. Usando Iterator, você não pode remover um elemento em uma coleção onde, como você pode remover um elemento de uma coleção usando ListIterator.
  4. Usando o Iterator você pode percorrer todas as coleções como Map, List, Set. Mas, por ListIteror você pode percorrer List apenas objetos implementados.
  5. Você pode recuperar um índice de um elemento usando o Iterator. Mas como List é sequencial e baseado em índice, você pode recuperar um índice de um elemento usando ListIterator.

Conclusão:

Você pode usar o ListIterator quando precisar percorrer um objeto List na direção direta e reversa. Senão você pode usar o Iterator, pois ele suporta todos os objetos de coleção de tipos.

Top