À mon avis, il y a un problème avec l'utilisation d'une boucle for pour supprimer des éléments dans une liste, mais vous pouvez utiliser une boucle for améliorée. Ensuite, j'ai trouvé une erreur lors de son utilisation aujourd'hui, alors je suis allé faire des recherches scientifiques. , puis j'ai découvert que c'était un malentendu. Parlons-en ci-dessous. . Si vous nous contactez, vous pouvez accéder directement à la fin de l’article. Voir résumé. .
Il existe trois façons de parcourir une liste en JAVA : la boucle for, la boucle for améliorée (également connue sous le nom de boucle foreach) et le parcours d'itérateur.
1. Une boucle for parcourt la liste
for(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 la suppression d'un élément, la taille de la liste change, et votre L'index change également, ce qui vous fera manquer certains éléments lors de 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, parce que les éléments suivants sont avancés d'une position en raison de la suppression, le troisième élément est réellement accessible. Par conséquent, cette méthode peut être utilisée lors de la suppression d’un élément spécifique, mais elle ne convient pas pour supprimer plusieurs éléments dans une boucle.
2. Boucle for améliorée
for(String x:list){ if(x.equals("del")) list.remove(x); }
Le problème avec cette méthode est que continuer à boucler après la suppression de l'élément signalera le message d'erreur ConcurrentModificationException, car lorsque le L'élément est utilisé Des modifications simultanées se sont produites, provoquant la levée d'une exception. Cependant, si vous utilisez break pour sauter immédiatement après la suppression, aucune erreur ne sera déclenchée.
3. Parcours d'itérateur
Iterator<String> it = list.iterator(); while(it.hasNext()){ String x = it.next(); if(x.equals("del")){ it.remove(); } }
Cette méthode peut faire un cycle et supprimer normalement. Mais il convient de noter que si vous utilisez la méthode Remove de l'itérateur, si vous utilisez la méthode Remove de la liste, vous signalerez également l'erreur ConcurrentModificationException mentionnée ci-dessus.
Résumé :
(1) Pour supprimer cycliquement un élément spécifique de la liste, vous pouvez utiliser l'une des trois méthodes, mais vous devez faire attention aux problèmes analysés ci-dessus lors de l'utilisation.
(2) Pour supprimer plusieurs éléments d'une liste dans une boucle, la méthode itérateur doit être utilisée.
Le résumé ci-dessus de la méthode de suppression cyclique d'éléments dans une liste en Java est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère que vous soutiendrez le site Web PHP chinois.
Pour plus d'articles connexes sur la méthode de suppression d'éléments dans une liste en boucle en Java, veuillez faire attention au site Web PHP chinois !