Je me souviens qu'il y a un problème avec l'utilisation de la boucle FOR pour supprimer les éléments dans la liste, mais vous pouvez utiliser la boucle améliorée. Puis aujourd'hui, j'ai trouvé qu'une erreur a été signalée lors de l'utilisation, puis je suis allée populariser la science, puis j'ai constaté qu'il s'agissait d'un malentendu. Parlons-en ci-dessous. . Tendez la main et sautez directement à la fin de l'article. Regardez le résumé. .
Il existe trois façons de faire des listes de traversées en Java, améliorer pour la boucle (c'est-à-dire la boucle de ForEach communément appelée) et la traversée de l'itérateur.
1. Pour la liste de traversée de boucle
pour (int i = 0; i <list.size (); i ++) {if (list.get (i) .equals ("del")) list.remove (i);}Le problème avec cette méthode est qu'après avoir supprimé un élément, la taille de la liste change et votre indice change, ce qui vous fera manquer certains éléments pendant la traversée. Par exemple, lorsque vous supprimez le premier élément et continuez à accéder au deuxième élément en fonction de l'index, car les éléments après la relation supprimée sont déplacés un par un, l'accès réel au troisième élément. Par conséquent, cette méthode peut être utilisée lors de la suppression d'un élément spécifique, mais ne convient pas lors de la suppression de plusieurs éléments dans une boucle.
2. Améliorer la boucle pour
for (String x: list) {if (x.equals ("del")) list.remove (x);}Le problème avec cette méthode est qu'après la suppression de l'élément, le message d'erreur sera signalé en continuant à faire boucle, car une modification simultanée se produit lorsque l'élément est utilisé, ce qui entraîne des exceptions. Cependant, si vous utilisez Break pour sauter immédiatement après la suppression, une erreur ne sera pas déclenchée.
3. Traversion itérator
Iterator <string> it = list.iterator (); while (it.hasnext ()) {string x = it.next (); if (x.equals ("del")) {it.remove (); }}Cette méthode peut être bouclée et supprimée normalement. Mais il convient de noter que si vous utilisez la méthode de suppression d'Iterator, si vous utilisez la méthode de suppression de la liste, vous signalerez également l'erreur ConcurrentModificationException mentionnée ci-dessus.
Résumer:
(1) Si vous bouclez pour supprimer un élément spécifique dans la liste, vous pouvez utiliser l'une des trois méthodes, mais vous devez prêter attention aux divers problèmes analysés ci-dessus lorsque vous l'utilisez.
(2) Si vous bouclez pour supprimer plusieurs éléments dans la liste, vous devez utiliser la méthode Iterator.
Le résumé ci-dessus de la méthode ci-dessus de suppression des éléments dans les listes de Java est tout le contenu partagé par l'éditeur. J'espère que cela peut vous donner une référence et j'espère que vous soutiendrez plus Wulin.com.