[JAVA] precision sur LinkedList listIterator
CbfB
-
CbfB -
CbfB -
Salut tout le monde,
j'ai un peu de mal a saisir ce qui se passe exactement lors de l'appel de listIterator() dans une LinkedList. Ce qui m'embrouille le plus est le fait que la fonction renvoie une interface.
Donc j'aimerais juste confirmation(ou une explication) sur ce que je pense avoir compris.
Lorsque j'appelle
maliste me renvoie simplement un nouvel objet de type ListIterator qui contient une liste de tous les éléments contenus dans malist ?
Si c'est le cas on se retrouve donc avec deux objet qui contiennent chacun exactement la même liste ?
Et quel est le "vrai" type de cet objet renvoyé, puisque ListIterator n'est qu'une interface ?
Et a quoi sert l'iterateur ? on aurait pas pu implémenter "hasNext() next() remove()" directement dans la classe LinkedList ?
Merci d'avance a celui/ceux qui pourront m'éclairer :)
j'ai un peu de mal a saisir ce qui se passe exactement lors de l'appel de listIterator() dans une LinkedList. Ce qui m'embrouille le plus est le fait que la fonction renvoie une interface.
Donc j'aimerais juste confirmation(ou une explication) sur ce que je pense avoir compris.
Lorsque j'appelle
maliste.listIterator()
maliste me renvoie simplement un nouvel objet de type ListIterator qui contient une liste de tous les éléments contenus dans malist ?
Si c'est le cas on se retrouve donc avec deux objet qui contiennent chacun exactement la même liste ?
Et quel est le "vrai" type de cet objet renvoyé, puisque ListIterator n'est qu'une interface ?
Et a quoi sert l'iterateur ? on aurait pas pu implémenter "hasNext() next() remove()" directement dans la classe LinkedList ?
Merci d'avance a celui/ceux qui pourront m'éclairer :)
A voir également:
- [JAVA] precision sur LinkedList listIterator
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
1 réponse
Un itérateur ce n'est pas une copie de ta liste, mais une référence aux objets qu'elle contient. Tu te déplaces sur ta liste (avec next et previous) pour ajouter (add), supprimer (remove) ou modifier (set) ton objet.
C'est un peu la différence qu'il peut y avoir entre un tableau tab[] et ses objets tab[i].
Quant au vrai type de l'itérateur c'est java.util.LinkedList$ListItr
C'est un peu la différence qu'il peut y avoir entre un tableau tab[] et ses objets tab[i].
Quant au vrai type de l'itérateur c'est java.util.LinkedList$ListItr
System.out.print(new LinkedList().listIterator().getClass().getName());
CbfB
Merci :)