Verschiedene Objekte in 2 dimensionalem Array speichern

Blooper

Mitglied
Hallo,
Ich versuche gerade eine 2 dimensionale Liste aus Objekten zu erstellen und danach auf ihre Attribute zuzugreifen, z.B. so:
Java:
 ArrayList<Object> Objekte = new ArrayList<Object>();
Objekte.add(new Objekt());
Objekte.get(0).attribut;

Leider klappt das nicht und ich weiß auch nicht wie ich das mit der 2 dimensionalen Liste hinkriegen soll. Im Internet find ich auch nichts wirklich passendes dazu. Wäre für Hilfe sehr dankbar.
 
Einfach:
Java:
List<List<Object>> myList = new ArrayList<List<Object>>();

Dann musst du natürlich die einzelnen sub-ArrayLists auch erzeugen denn nach der initialisierung ist in deiner 2D Liste kein Element enthalten.
 
Erstes Element der ersten Liste:
Code:
myList.get(0).get(0).myMethod()

Meiner Meinung nach leicher zu lesen:

Java:
Object xyz = myList.get(0).get(0); 
xyz.myMethod();
 
Wenn du da auf keine Methode zugreifen kannst, dann verwendest du vermutlich wirklich Object als Generic-Typ.
Also: List<List<Object>>

Verwende dann doch lieber die Klasse, die auch deine Methoden bereit stellt.
 
Das Problem ist, dass ich eine Liste haben möchte die verschiedene Objekte von verschiedenen Klassen speichert. Also um genauer zu sein, ich möchte ein 16x16 Spielfeld machen und in jedem Feld ein anderes Objekt zuweisen. Diese Objekte sind z.B Instanzen von der Klasse Wand, Boden usw. . Jedes dieser Felder soll dann die entsprechenden Methoden der Klasse besitzen.
Ist sowas überhaupt möglich?
 
Wie wäre es wenn du dir eine Grundklasse z.B,
Code:
 ArrayObject
baust und dann alles Objecte davon ableitest. Dann kannst du dir eine 2 dimensionale Liste mit den ArrayObjects bauen. Welchen usecase gibt es für den Zugriff auf die Methoden/ Attribute der einzelnen Objekte?
 
Entweder haben alle einen gemeinsamen Supertyp (z.B. Feld) oder du lässt alle ein Interface implementieren, dass die nötigen Funktionen bereitstellt.
 
Okay vielen Dank, leider kann ich das mit den Interfaces und der Grundklasse nicht machen weil ich mich genau an die Aufgabenstellung halten muss. Dann muss ich wohl einen anderen Weg finden.
 
Nun ja ich muss ein Spielfeld erstellen das aus verschiedenen Bilder besteht. Damit das Spielfeld nicht fest gewählt werden muss und veränderbar ist habe ich eine Textdatei in der Zahlen von 0-5 stehen die jeweils für die Bilder stehen. Das Einlesen und anzeigen auf dem Bildschirm klappt und das Bewegen des Spielers auch nur muss ich die Kollision ermitteln und habe mir gedacht das jedes Bild, nach der Aufgabenstellung, ein Objekt sein muss und ich diesem dann Koordinaten und Funktionen zuweisen kann. Diese Objekte muss möchte ich nun in einem 2x2 Array. Damit ich nachher mit Smileys darauf zugreifen kann.
 

Neue Themen


Zurück
Oben