Hallo,
ich bin noch relativ neu in der Programmierung, wir haben bis jetzt Processing gelernt und ich steige grade auf Eclipse um.
Ich arbeite zum ersten mal mit Listen. Im Hauptprogramm wird folgende Liste erzeugt (gekürzter Ausschnitt):
Eine Methode der Board-Klasse kann weitere boards erzeugen:
Nun möchte ich in der Board-Klasse an anderer Stelle mit einer Methode die Position des jeweiligen boards in boardList herausfinden. Wenn ich jedoch die indexOf()-Methode von Java benutzen möchte, muss ich in die Klammer das Objekt angeben. Allerdings heißen ja alle Boards gleich (und zwar "board"), sie unterscheiden sich lediglich in 2 verschiedenen Variablen ("layer" und "number"), wodurch jedes board individuelle Koordinaten hat. Wie kann man die Position nun herausfinden?
Allgemein fällt es mir recht schwer, mit den Listen gezielt bestimmte Objekte anzusprechen, was bei Arrays mit Formulierungen wie "beispiel[4] = ..." ziemlich einfach ging. Oder mache ich etwas falsch?
Hier noch mein Versuch, die Position in der Liste herauszubekommen. Leider kommt dabei immer 0 heraus:
ich bin noch relativ neu in der Programmierung, wir haben bis jetzt Processing gelernt und ich steige grade auf Eclipse um.
Ich arbeite zum ersten mal mit Listen. Im Hauptprogramm wird folgende Liste erzeugt (gekürzter Ausschnitt):
Java:
static public ArrayList<Board> boardList = new ArrayList<Board>();
Eine Methode der Board-Klasse kann weitere boards erzeugen:
Java:
public void createBoard() {
Board board = new Board(getLayer() + 1, Board.getNextLayerNumber(getLayer() + 1), nextMemory);
/** add created board to arrayList */
MainProgram.boardList.add(board);}
Nun möchte ich in der Board-Klasse an anderer Stelle mit einer Methode die Position des jeweiligen boards in boardList herausfinden. Wenn ich jedoch die indexOf()-Methode von Java benutzen möchte, muss ich in die Klammer das Objekt angeben. Allerdings heißen ja alle Boards gleich (und zwar "board"), sie unterscheiden sich lediglich in 2 verschiedenen Variablen ("layer" und "number"), wodurch jedes board individuelle Koordinaten hat. Wie kann man die Position nun herausfinden?
Allgemein fällt es mir recht schwer, mit den Listen gezielt bestimmte Objekte anzusprechen, was bei Arrays mit Formulierungen wie "beispiel[4] = ..." ziemlich einfach ging. Oder mache ich etwas falsch?
Hier noch mein Versuch, die Position in der Liste herauszubekommen. Leider kommt dabei immer 0 heraus:
Java:
public int getListPosition() {
int id = 0;
// for (int i = 0; i < MainProgram.boardList.size(); ++i) {
for (Board b : MainProgram.boardList) {
if (b.getLayer() == this.getLayer()
&& b.getNumber() == this.getNumber()) {
id = MainProgram.boardList.indexOf(b);
break;
// }
}
}
return id;
}