Avatar billede nicolaihansen Nybegynder
21. marts 2003 - 14:12 Der er 3 kommentarer

Iteratorer, Arraylist og folk der ikke kan kode

java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:444)
    at java.util.AbstractList$Itr.next(AbstractList.java:417)
    at GUI.main(GUI.java:24)
Exception in thread "main"

er fejlen jeg får på nedenstående kode:

import java.util.*;

/**
* @author nbhansen
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/

public class GUI {

    public static void main(String[] args) {

        Vare vare1 = new Vare("tuborg", 14.5, 50);
        Vare vare2 = new Vare("carlsberg", 14.5, 50);
        ArrayList automat = new ArrayList();
        Iterator it = automat.iterator();
        automat.add(vare1);
        automat.add(vare2);

        while (it.hasNext()) {
        Vare currentVare = (Vare)it.next();
        String vareNavn = currentVare.getNavn();
       
        System.out.println(vareNavn);
        }

    }
}

der er ikke noget bøvl med min Vare klasse.. den er ret standard. linien med "Vare currentVare = (Vare)it.next();" lader til at være der problemet opstår.. nogen bud?
Avatar billede erikjacobsen Ekspert
21. marts 2003 - 14:15 #1
Byt om på linierne, så:

  automat.add(vare1);
  automat.add(vare2);
  Iterator it = automat.iterator();
Avatar billede arne_v Ekspert
21. marts 2003 - 14:44 #2
Erik har ret.

Når du ændrer på listens indhold så bliver alle tidligere
createde iteratorer invalide og kan ikke længere bruges.
Avatar billede =maddog= Nybegynder
21. marts 2003 - 19:33 #3
Det er netop derfor man bruger Iterator fremfor Enumeration. Hvis flere resourcer har adgang til Map objektet kan man hindre programmet fejler ved at gribe undtagelsen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester