Hinzufügen zu Liste [erledigt]

Allgemeine Themen rund um Java

Moderator: wegus

Antworten
_xZap_
Beiträge: 6
Registriert: 22.02.2015, 19:06

Hinzufügen zu Liste [erledigt]

Beitrag von _xZap_ » 23.02.2015, 03:25

Ich möchte in einer for-schleife 5 Objekte erzeugen und dann zu einer statischen ArrayListe hinzufügen. Dabei wird jedes mal eine Systemausgabe geliefert, insgesamt 5 Stück.
Wenn ich danach die Liste mit einer for-each Schleife durchlaufe und jedes Element eine systemausgabe liefern lasse, kommt immer nur eine ausgabe von dem Element, das als letztes hinzugefügt wurde, dh die anderen sind irgendwie nicht mehr in der Liste. der size()-befehl bestätigt die Annahme:

Code: Alles auswählen

 public void test() {
        /* TEST */
        for (int i = 0; i < 5; i++) {
            Creature c = new Creature();
            c.setIni((int) (20 * Math.random() + 1));
            c.setId(i + 1);
            System.out.println("ID von C" + c.getId() + ": " + c.getIni());
            Creature.cList.add(c);
        }
        System.out.println("--------------------------------");
        
        for (Creature c : Creature.cList) {
            System.out.println("ALIVE id: " + c.getId());
        }
         System.out.println("list size: " + Creature.cList.size());
        System.out.println("--------------------------------");
Systemausgabe:
ID von C1: 11
ID von C2: 9
ID von C3: 1
ID von C4: 11
ID von C5: 14
--------------------------------
ALIVE id: 5
list size: 1
--------------------------------

Falls es wichtig ist: Die Methode wird im Konstruktor der Mainklasse aufgerufen.

Ich verstehe nicht, warum der alle Objekte an dieselbe Stelle in der Liste setzt. Ohne Index-parameter sollte der add()-befehl jedes objekt doch ans ende der liste hängen.
Zuletzt geändert von _xZap_ am 23.02.2015, 13:45, insgesamt 1-mal geändert.

_xZap_
Beiträge: 6
Registriert: 22.02.2015, 19:06

Re: Hinzufügen zu Liste

Beitrag von _xZap_ » 23.02.2015, 13:45

Ich habe den Fehler gefunden, es lag daran, dass ich die ArrayList erst im Konstruktor deklariert habe. Das macht bei einer statischen Liste natürlich keinen Sinn.

Antworten