java - Pourquoi la suppression du dernier élément de foreach génère-t-elle une erreur?
PHP中文网
PHP中文网 2017-05-17 10:04:40
0
5
874
public static void main(String[] args) {

        List<String> a = new ArrayList<String>();
            
        a.add("1");
        a.add("2");
        a.add("23");
        for (String temp : a) {
            if ("23".equals(temp)) {
                a.remove(temp);
            }
        }
        System.out.println(a);
    }

Exception dans le fil "main" java.util.ConcurrentModificationException
à java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
à java.util.ArrayList$Itr.next(ArrayList.java:851)
à wan.ForEach.main(ForEach.java:22)

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(5)
大家讲道理

foreach是通过迭代器来实现的,使用迭代器遍历元素时,容器不能试图改变容器的结构,如remove、add操作会抛出异常; 可以使用迭代器的removeMéthode pour supprimer des éléments.

迷茫

http://tyrion.iteye.com/blog/...

漂亮男人

La personne ci-dessus a été très claire. Ici, je vais vous proposer deux solutions simples
1 : Suppression de l'itérateur
2 Copier la liste à parcourir, puis utiliser la liste d'origine.
Bien sûr, la suppression de l'itérateur est recommandée

.
phpcn_u1582

Ce qui est dit à l'étage est très officiel. Pour parler franchement, la méthode de for(Object obj:list) ne peut pas appeler la méthode delete de list pour supprimer des éléments, sinon une exception sera levée car la structure Iterator doit être déterminée. , il y a donc deux façons de le supprimer, l'une consiste à copier une liste et à supprimer les éléments de l'ancienne liste en parcourant la nouvelle liste, et l'autre consiste à utiliser la boucle for(int i; i<count; i++) Loop, vous pouvez donc le supprimer via le curseur. Faites simplement attention à ne pas franchir les limites de l'indice du tableau.

習慣沉默

Lorsque vous comptez les œufs, si quelqu'un met secrètement des œufs dans votre panier ou enlève des œufs, cela vous fera compter de manière incorrecte. À moins que vous n'enleviez ou ne preniez les œufs vous-même, vous pouvez vous rappeler le même principe. au programme

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!