[résolu] [qst] [débutant] Opérations pdt un parcours avec Iterator ?

Opérations pdt un parcours avec Iterator ? [résolu] [qst] [débutant] - Java - Programmation

Marsh Posté le 03-04-2006 à 15:04:14    

Salut tout le monde,
 
Je voulais vous demander : on peut effectuer des ajouts/suppressions sur une liste (ou autre) qui est en train d'etre parcourue avec un Iterateur ?
 
Il existe un article qui décrit ces problèmes ?
 
Merci d'avance a plus


Message édité par mehdi69 le 05-04-2006 à 13:50:02
Reply

Marsh Posté le 03-04-2006 à 15:04:14   

Reply

Marsh Posté le 03-04-2006 à 15:14:38    

oui, la javadoc.
(justement, quand tu iteres, tu DOIS supprimer depuis l'iterateur)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-04-2006 à 15:19:59    

merci :)
bien que je me serai passé de la première phrase, pasque ca répond pas du tout à ma question.
 
je voudrais savoir si on peut supprimer n'importe quel élément de la liste et si on peut en ajouter
avec l'iterateur y'a qu'une méthode remove pour l'élément courant
 


Message édité par mehdi69 le 03-04-2006 à 15:32:50
Reply

Marsh Posté le 03-04-2006 à 21:43:38    

Ben pourtant il a raison, pour supprimer, avec un Iterator c'est immédiat.
 
Sinon voir ListIterator, qui est un peu plus évolué...
 
Donc dans tous les cas, pas d'article à lire si ce n'est la doc...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 04-04-2006 à 11:35:16    

Ca va dépendre de la collection sur laquelle tu itères. En général avec les implémentations de base du JDK (ArrayList, HashMap, HashSet) tu vas rencontrer une ConcurrentModificationException si tu touches à la collection sans passer par l'iterateur, mais ce n'est pas vrai pour toutes les collections. Real a bien raison en te renvoyant à la Javadoc, on invente rien c'est marqué très clairement dedans, par exemple pour ArrayList :
 
"The iterators returned by this class's iterator and listIterator methods are fail-fast: if list is structurally modified at any time after the iterator is created, in any way except through the iterator's own remove or add methods, the iterator will throw a ConcurrentModificationException. Thus, in the face of concurrent modification, the iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic behavior at an undetermined time in the future."
 
En résumé: Ca dépend de l'implémentation de la collection, et il faut lire la Javadoc pour le savoir.


---------------
Commons Configuration - http://jakarta.apache.org/commons/configuration
Reply

Marsh Posté le 05-04-2006 à 13:48:56    

merci a tous,
 
pourtant je persiste et signe, je crois pas que qq'un qui poste ai besoin qu'on lui indique la javadoc.
 
surtout que ce dont j'avais besoin c'était  
 
"supprimer n'importe quel élément de la liste et si on peut en ajouter avec l'iterateur"
 
et la méthode remove de l'iterateur classique ne répond pas à ce besoin.
 
Ce dont j'avais besoin c'était ListIterator, on me l'a indiqué sur un autre forum. (avant gm_superstar je veut dire)
 
mais merci quand meme bien sur :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed