Iterator ite = Set.iterator();
Iterator ite = List.iterator();
ListIterator listite = List.listIterator();
Nous pouvons utiliser Iterator
pour parcourir a Set
ou a List
ou a Map
. Mais ListIterator
ne peut être utilisé que pour traverser a List
, il ne peut pas traverser a Set
. Pourquoi?
Je sais que la principale différence est qu'avec l'itérateur, nous pouvons voyager dans une seule direction, mais avec ListIterator
nous pouvons voyager dans les deux sens. Y-a-t'il d'autres différences? Et des avantages de ListIterator
plus Iterator
?
Réponses:
Les différences sont répertoriées dans le Javadoc pour ListIterator
Vous pouvez
la source
Set
est simple: il n'y a pas de "point courant": les éléments n'ont pas d'index et il n'y a pas de moyen utile d'ajouter un élément "avant" ou "après" un autre.Il y a deux différences:
Nous pouvons utiliser Iterator pour parcourir l'ensemble et la liste et également le type de carte d'objets. Alors qu'un ListIterator peut être utilisé pour traverser pour les objets de type List, mais pas pour les objets de type Set.
Autrement dit, nous pouvons obtenir un objet Iterator en utilisant Set et List, voir ici:
En utilisant Iterator, nous pouvons récupérer les éléments de l'objet Collection uniquement dans le sens direct.
Méthodes dans Iterator:
hasNext()
next()
remove()
Mais nous obtenons l'objet ListIterator uniquement à partir de l'interface List, voir ici:
où en tant que ListIterator vous permet de traverser dans les deux sens (avant et arrière). Donc, il a deux méthodes de plus comme
hasPrevious()
etprevious()
autres que celles d'Iterator. De plus, nous pouvons obtenir des index des éléments suivants ou précédents (en utilisantnextIndex()
etpreviousIndex()
respectivement )Méthodes dans ListIterator:
c'est-à-dire que nous ne pouvons pas obtenir l'objet ListIterator à partir de l'interface Set.
Référence: - Quelle est la différence entre Iterator et ListIterator?
la source
Voici les différences entre eux:
iterator
vous ne pouvez avancer que vers l'avant, mais avecListIterator
vous pouvez également déplacer les backword tout en lisant les éléments.ListIterator
vous pouvez obtenir l'index à tout moment pendant le parcours, ce qui n'est pas possible aveciterator
s.iterator
vous pouvez vérifier uniquement l'élément suivant disponible ou non, mais danslistiterator
vous pouvez vérifier les éléments précédents et suivants.listiterator
vous pouvez ajouter un nouvel élément à tout moment, tout en parcourant. Pas possible aveciterator
.listiterator
vous pouvez modifier un élément pendant le parcours, ce qui n'est pas possible aveciterator
.Aspect et sensation de l'itérateur:
Apparence et sensation de ListIterator:
la source