[JAVA] precision sur LinkedList listIterator

Fermé
CbfB - Modifié par CbfB le 19/08/2011 à 19:55
 CbfB - 19 août 2011 à 21:16
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.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:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
19 août 2011 à 20:10
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
System.out.print(new LinkedList().listIterator().getClass().getName());
0
Merci :)
0