Bonjour,
Tout d'abord, si jamais le post est répétitif, veuillez m'en excuser. J'ai beaucoup cherché sur le forum et d'autres sites web et je n'ai pas trouvé de réponses correspondant à mon cas.
J'ai récemment eu un cours sur les conteneurs, principalement des classes implémentant les interfaces List et Set. Nous avons donc développer le cours sur 2 classes: les linkedList et les treeSet.
Lorsque l'on utilise ces collections, il parraît donc intéressant de les parcourir. Nous avons donc vu à cet occasion l'utilisation des iterateur.
On a donc les possibilités suivantes de parcour:
-linkedList: parcour via une boucle for ou un iterateur (boucle while)
-treeSet: parcour via un iterator (à cause du fait que l'on est basé sur une structure de type arbre binaire je suppose).
De ce que j'ai pu lire sur internet, le gros avantage de l'iterator est qu'il est bien plus rapide comparé au for.
Néanmoins, mon professeur nous a présenté un "autre" inconvénient qui est très confus dans ma tête et que je n'ai pu trouvé sur internet:
Les boucles for ne serait pas "dynamique" alors que les boucles "while" le seraient.
En gros, lorsque l'on a une liste et que java compile le code, la boucle for se base sur le premier model de liste qu'il a rencontré, et n'est alors plus adapté si l'on supprime un élément et plante.
Je n'ai vraiment pas compris ce à quoi il faisait référence (et j'ai pourtant posé beaucoup de questions pour essayer de comprendre) et personne dans ma classe n'a compris.
En faisant des recherches, je suis tombé sur l'erreur "ConcurrentModificationException" mais je ne suis même pas sûre que ce soit de ça dont il parlait.
Par ailleurs, je ne comprends pas ce qu'il entend par "dynamique" ? Pour moi, dans la mesure où l'on utilise un for, on ne sait pas forcément combien d'élément le loop parcourera ?
Quelqu'un aurait une idée ? En espérant avoir été "à peu près" claire.
Merci par avance
Partager