147 votes

différence entre Iterator et Listiterator?

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

ListIterator listite = List.listIterator();

On peut utiliser Iterator de traverser Set ou List ou Map. Mais ListIterator ne peut être utilisée pour parcourir un List, il ne peut pas traverser un Set. Pourquoi?

Je sais que la principale différence est que, avec itérateur nous pouvons nous déplacer dans une seule direction, mais avec ListIterator nous pouvons nous déplacer dans les deux directions. Existe-il d'autres différences? Et les avantages tirés de l' ListIterator sur Iterator?

159voto

Peter Lawrey Points 229686

Les différences sont listées dans la Javadoc pour ListIterator

Vous pouvez

  • itérer à l'envers
  • obtenir l'index à tout moment.
  • ajouter une nouvelle valeur à tout moment.
  • définir une nouvelle valeur à ce point.

43voto

jaideep Points 407

Il y a deux Différences :

  1. Nous pouvons utiliser l'Itérateur pour parcourir Ensemble et la Liste et la Carte type d'Objets. Mais la Liste Itérateur peut être utilisée pour parcourir la Liste des Objets de type, mais pas pour Définir le type d'Objets.

C'est, nous pouvons obtenir un Itérateur de l'objet à l'aide de Set et de la Liste, voir ici :

En utilisant un Itérateur, nous pouvons récupérer les éléments de l'Objet de Collection de et vers l'avant seulement.

Méthodes d'Itérateur :

  1. hasNext()
  2. next()
  3. remove()

Itérateur ite = Set.iterator(); Itérateur ite = Liste.iterator();

  1. Mais nous obtenons Itérateur Liste d'objet qu'à partir de la Liste de l'interface, voir ici :

où en tant que Liste d'Itérateur, qui permet de traverser dans les deux sens. C'est la Liste des Itérateurs de traverse dans les deux sens. Donc, il a un autre méthodes hasPrevious () et previous() autre que l'Itérateur. Et aussi, nous pouvons obtenir des indices de la suivante ou précédente éléments.

Méthodes de ListIterator

  1. hasNext()
  2. next()
  3. previous() 4.hasPrevious()
  4. remove()
  5. nextIndex()
  6. previousIndex()

ListIterator listite = Liste.listIterator();

c'est à dire, nous ne pouvons pas obtenir de l'Itérateur Liste d'objet à partir de la configuration de l'interface.

28voto

user1923551 Points 502

Itérateur est la super classe de ListIterator.

Ici est la différence entre eux:

  1. Avec itérateur vous pouvez aller de l'avant, mais avec Itérateur Liste, vous pouvez passer d'une parole aussi lors de la lecture des éléments.
  2. Avec Itérateur Liste, vous pouvez obtenir de l'indice à tout moment de la traversée, ce qui n'est pas possible avec les itérateurs.
  3. Avec itérateur vous pouvez vérifier uniquement pour l'élément suivant disponible ou non, mais dans la liste itérateur vous pouvez vérifier précédent et suivant des éléments.
  4. Avec itérateur liste, vous pouvez ajouter un nouvel élément à n'importe quel moment, alors qu'elles traversent. Pas possible avec itérateur.
  5. Avec itérateur liste, vous pouvez modifier un élément, tout en traversant, ce qui n'est pas possible avec itérateur.

Itérateur regarder et se sentir:

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

ListIterator regarder et se sentir:

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
}

1voto

user3445599 Points 230

Iterator Et ListIterator Différence

  1. Nous pouvons utiliser l'Itérateur pour parcourir Ensemble et la Liste et la Carte type d'Objets. Mais la Liste Itérateur peut être utilisée pour parcourir la Liste des Objets de type, mais pas pour Définir le type d'Objets.

C'est, nous pouvons obtenir un Iterrator objet à l'aide de Set et de la Liste, voir ici :

Itérateur ite = Set.iterator(); Itérateur ite = Liste.iterator();

Mais nous obtenons Itérateur Liste d'objet qu'à partir de la Liste de l'interface, voir ici :

ListIterator listite = Liste.listIterator();

c'est à dire, nous ne pouvons pas obtenir de l'Itérateur Liste d'objet à partir de la configuration de l'interface.

  1. En utilisant un Itérateur, nous pouvons récupérer les éléments de l'Objet de Collection de et vers l'avant seulement.

    • où en tant que Liste d'Itérateur, qui permet de traverser dans les deux sens. C'est la Liste des Itérateurs parcourir deux directions. Donc, il a un autre méthodes hasPrevious () et previous() autre que l'Itérateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X