Anzeige:
Ergebnis 1 bis 4 von 4

Thema: ArrayList in einer Schleife durchgehen und ein Element hinzufügen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    17.12.2005
    Beiträge
    300

    ArrayList in einer Schleife durchgehen und ein Element hinzufügen

    Hi allerseits,

    ich habe ein Problem mit einer ArrayList in Java. Diese ArrayList ist mit Werten gefüllt, die ich in einer for-Schleife durchgehe. Wenn in der Schleife eine bestimmte Bedingung erfüllt ist, soll am Ende der ArrayList ein neues Element hinzugefügt werden, das später natürlich auch in der Schleife abgearbeitet werden soll.

    Gibt es eine Möglichkeit, das zu realisieren?

    Lang Rede, kurzer Sinn: hier mal ein kleines Beispiel:

    Code:
    import java.util.ArrayList;
    
    public class MinimalClass {
        public static void main(String[] args) {
            ArrayList<Integer> al = new ArrayList();
            al.add(1);
            al.add(2);
            al.add(3);
            for (int i : al) {
                System.out.println(i);
                if (i == 2) {
                    al.add(4);
                }
            }
        }
    }
    Das Hinzufügen funktioniert aber nicht. Es kommt folgende Exception:

    Code:
    Exception in thread "main" java.util.ConcurrentModificationException
    	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
    	at java.util.AbstractList$Itr.next(AbstractList.java:420)
    	at MinimalClass.main(MinimalClass.java:9)
    [b]EDIT[b]
    Problem gelöst


    Hier die Lösung:

    Code:
    import java.util.*;
    
    public class MinimalClass {
        public static void main(String[] args) {
            ArrayList<Integer> al = new ArrayList();
            al.add(1);
            al.add(2);
            al.add(3);
            int iAnz = al.size();
            for (int i=0; i<iAnz; i++) {
                int iOut = al.get(i);
                System.out.println(iOut);
                if (iOut == 2) {
                    al.add(4);
                    iAnz++;
                }
            }
        }
    }
    Geändert von Hobbes (28-11-2008 um 16:14 Uhr) Grund: Problem gelöst

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •