Différence entre Iterator et Listiterator?

Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); 

Nous pouvons utiliser Iterator pour parcourir un Set une List ou une Map . Mais ListIterator ne peut être utilisé que pour parcourir une List , il ne peut pas traverser un Set . Pourquoi?

Je sais que la principale différence est qu’avec l’iterator, nous pouvons voyager dans une seule direction, mais avec ListIterator nous pouvons parcourir les deux directions. Y-a-t’il d’autres différences? Et tous les avantages de ListIterator sur Iterator ?

Les différences sont répertoriées dans le Javadoc pour ListIterator

Vous pouvez

  • itérer en arrière
  • obtenir l’iterator à n’importe quel point.
  • append une nouvelle valeur à tout moment.
  • définir une nouvelle valeur à ce point.

Il y a deux différences:

  1. Nous pouvons utiliser Iterator pour parcourir les objects Set and List et Map. Alors qu’un ListIterator peut être utilisé pour parcourir des objects de type liste, mais pas pour des objects de type ensemble.

    Autrement dit, nous pouvons obtenir un object Iterator en utilisant Set et List, voir ici:

    En utilisant Iterator, nous pouvons récupérer les éléments de l’object Collection dans le sens direct uniquement.

    Méthodes en iterator:

    1. hasNext()
    2. next()
    3. remove()
     Iterator iterator = Set.iterator(); Iterator iterator = List.iterator(); 
  2. Mais nous n’obtenons l’object ListIterator qu’à partir de l’interface List, voir ici:

    où en tant que ListIterator vous permet de parcourir les deux directions (avant et arrière). Donc, il a deux autres méthodes comme hasPrevious() et previous() autres que celles de Iterator. En outre, nous pouvons obtenir des index des éléments suivants ou précédents (en utilisant respectivement nextIndex() et previousIndex() )

    Méthodes dans ListIterator:

    1. hasNext ()
    2. prochain()
    3. précédent()
    4. hasPrevious ()
    5. retirer()
    6. nextIndex ()
    7. previousIndex ()
     ListIterator listiterator = List.listIterator(); 

    Par exemple, nous ne pouvons pas obtenir d’object ListIterator à partir de l’interface Set.

Référence: – Quelle est la différence entre Iterator et ListIterator?

Iterator est une super classe de ListIterator.

Voici les différences entre eux:

  1. Avec l’ iterator vous ne pouvez que déplacer vers l’avant, mais avec ListIterator vous pouvez également déplacer le mot de passe lors de la lecture des éléments.
  2. Avec ListIterator vous pouvez obtenir l’index à n’importe quel moment de la traversée, ce qui n’est pas possible avec les iterator s.
  3. Avec l’ iterator vous ne pouvez vérifier que l’élément suivant disponible ou non, mais dans listiterator vous pouvez vérifier les éléments précédents et suivants.
  4. Avec le listiterator vous pouvez append un nouvel élément à tout moment, lors de la traversée. Pas possible avec un iterator .
  5. Avec listiterator vous pouvez modifier un élément en traversant, ce qui n’est pas possible avec un iterator .

Iterator look and feel:

  public interface Iterator { boolean hasNext(); E next(); void remove(); //optional-->use only once with next(), dont use it when u use for:each } 

LookIterator look and feel:

 public interface ListIterator extends Iterator { 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 } 

Les avantages de ListIterator sur Iterator sont que nous pouvons append des éléments à tout moment en parcourant une liste à l’aide de ListIterator.

Différence Iterator et ListIterator

  1. Nous pouvons utiliser Iterator pour parcourir les objects Set and List et Map. Mais Itérateur de liste peut être utilisé pour parcourir des objects de type Liste, mais pas pour le type d’objects Définir.

Autrement dit, nous pouvons obtenir un object Iterrator en utilisant Set et List, voir ici:

 Iterator ite = Set.iterator(); Iterator ite = List.iterator(); 

Mais nous n’obtenons que l’object Liste Iterator de l’interface List, voir ici:

 ListIterator listite = List.listIterator(); 

C’est-à-dire que nous ne pouvons pas obtenir d’object List Iterator à partir de l’interface Set.

  1. En utilisant Iterator, nous pouvons récupérer les éléments de l’object Collection dans le sens direct uniquement.

    • où comme liste Iterator, qui vous permet de parcourir les deux directions. Ce sont les iterators de liste qui traversent deux directions. Donc, il a une autre méthode hasPrevious() & previous() autre que Iterator.