Maison > Java > javaDidacticiel > le corps du texte

Résumé des méthodes de bouclage pour supprimer des éléments dans une liste en Java

高洛峰
Libérer: 2017-01-22 16:14:05
original
1383 Les gens l'ont consulté

À 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);
}
Copier après la connexion

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);
}
Copier après la connexion

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();
  }
}
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal