Servus,
habe leider ein Problem mit meiner Anwendung. Ich verwende eine verschachtelte ArrayList, also eine ArrayList in einer ArrayList, weil ich ein zwei-dimensionales Array von einem Objekt benötige.
Ich beschreibe ein Spielfeld quasi wie eine Tabelle. Zunächst fülle ich eine Zeile mit Objekten (das wäre die innere ArrayList:
Wenn eine Zeile voll ist, schreibe ich die temporäre ArrayList in das Klassenattribut (Hauptarray) des Spielfelds und leere es anschließend:
Jetzt versuche ich in einer anderen Methode auf die einzelnen Elemente zuzugreifen und erhalte eine IndexOutOfBoundsException: Index: 0, Size: 0:
Beim Debuggen habe ich gesehen, dass sämtliche Elemente auf Null stehen. Nun bin ich mir nicht sicher, ob man sowas im Debugger einfach nicht sehen kann, oder ob da was schief gelaufen ist. Hat es vielleicht etwas damit zu tun, dass ich das temporäre Array wieder leere? Eigentlich ja nicht, oder? Die Objekte aus dem temporären Array müssten ja jetzt eigentlich im Hauptarray stecken.
Ich komm leider auch nicht wirklich auf eine Lösung.
Ich hoffe mir kann jemand helfen.
Danke im Voraus!
habe leider ein Problem mit meiner Anwendung. Ich verwende eine verschachtelte ArrayList, also eine ArrayList in einer ArrayList, weil ich ein zwei-dimensionales Array von einem Objekt benötige.
Ich beschreibe ein Spielfeld quasi wie eine Tabelle. Zunächst fülle ich eine Zeile mit Objekten (das wäre die innere ArrayList:
Java:
temp.add(spielkarte);
Wenn eine Zeile voll ist, schreibe ich die temporäre ArrayList in das Klassenattribut (Hauptarray) des Spielfelds und leere es anschließend:
Java:
if((i + 1) % anzahlSpalten == 0 && i != 0){
spielfeld.add(temp);
temp.clear();
}
Jetzt versuche ich in einer anderen Methode auf die einzelnen Elemente zuzugreifen und erhalte eine IndexOutOfBoundsException: Index: 0, Size: 0:
Java:
for(int i = 0; i < anzahlZeilen; i++)
{
for(int j = 0; j < anzahlSpalten; j++)
{
id = spielfeld.get(i).get(j).getId();
...
}
}
Beim Debuggen habe ich gesehen, dass sämtliche Elemente auf Null stehen. Nun bin ich mir nicht sicher, ob man sowas im Debugger einfach nicht sehen kann, oder ob da was schief gelaufen ist. Hat es vielleicht etwas damit zu tun, dass ich das temporäre Array wieder leere? Eigentlich ja nicht, oder? Die Objekte aus dem temporären Array müssten ja jetzt eigentlich im Hauptarray stecken.
Ich komm leider auch nicht wirklich auf eine Lösung.
Ich hoffe mir kann jemand helfen.
Danke im Voraus!