Iterateurs

dinarea Messages postés 3 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 2 décembre 2007 - 2 déc. 2007 à 17:14
 Utilisateur anonyme - 3 déc. 2007 à 12:36
Bonjour,

Je travaille sur les collections. Mais en voulant personnaliser le code, j'ai un petit problème. Pouvez-vous m'aider pour ce problème svp?
Voici le code

public

class Liste<E>
extends AbstractCollection<E>{LinkedList<E>

l=
new LinkedList<E>();
............

public

ListIterator<E> monIterateur() {

// TODO Auto-generated method stub

return
l.listIterator();}

............

public

E suivant(){
return monIterateur().next();}

Et dans mon main, j'ai ça
Liste<String> l =

new Liste<String>();

Au lieu de faire

ListIterator<String> iter=l.monIterateur();
iter.next();

ce qui fonctionne
je veux juste faire
l.suivant();

Mais ça n'incrémente pas. Il insère toujours au début.
Pouvez-vous me dire c'est quoi la différence entre ces deux méthodes et pourquoi la deuxième ne marche pas? sinon, pourrai-je avoir une solution?
Désolée pour mes plusieurs questions.
Merci
Rea

1 réponse

Utilisateur anonyme
3 déc. 2007 à 12:36
C'est normal, quand tu appelles l.listIterator(); , ça génère un nouvel itérateur à chaque fois. Donc quand tu t'en sers, ça te renvoie toujours le premier élément. Stocke plutôt l'itérateur dans un attribut d'objet.

private Iterator<E> monIterateur =
l.listIterator();

...

E suivant(){
return monIterateur.next();}

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
Rejoignez-nous