Konzeptfrage: Array mit Metadaten?

glitsch

Aktives Mitglied
Hi zusammen,
bin noch kein grosser Entwurfsmaster. Ich soll mit einem ArrayList einen CD-Katalog bauen. Daten: Titel, Länge und Interpret. Über den Titel soll man aber die dazugehörigen anderen Daten wieder löschen könne. Es gibt also: Hinzufügen über Console, Löschen mit Titel, Ausgeben auf die Konsole, etc.

Kann ich assoziative Arrays mit ArrayList erzeugen, nach dem Muster:

{
Titel1 : "Länge", "Interpret";
...
}

Oder muss ich das mit einem mehrdimensionalen Array lösen? Erste Zeile immer Titel und die zweite und dritte würde dann Interpret und Länge enthalten. Etwas kompliziert zum ansprechen? 😱

Wie kann ich den Datenhaufen geeignet miteinander verknüpfen und ansprechen?
 
@EikeB => Uppps, logo. Guter Hinweis. ;-)
Ich erzeug dann quasi bei jeder Eingabe ein neues CDObjekt und leg es mit den gekapselten Daten in das Array rein. Ich hab dann vermutlich eine Getter-Methode, die mir den Titel abfragt?
 
OK, ich hab jetzt mal versucht direkt ein Objekt oder die Referenz darauf an das ArrayList in einen Indize zu übergeben. Scheint nicht zu klappen. Kann ich keine ganzen Objekte direkt in ein ArrayList packen? Das wäre doch praktisch? :bahnhof:

Beisiel:

Code:
...
liste.add(cd);
oder
liste.add(new CDKatalog());
...

Ich kann also definitiv nur Strings da rein packen?:shock:
 
Welcher fehler kommt?

Wie is die Liste definiert?

List<String> vielleicht?

Ich würde vorschlagen ein paar Grundlagenbücher zu besorgen.

Gruß,

Martin
 
Ich hab ein ArrayList definiert, in das ich gerne meine CDObjekte einzeln ablegen möchte, damit ich gezielt meine CDObjekte ansprechen kann. Das geht doch mit ArrayList?

Konzept:

- Jede CD kriegt einen einzelnen Container
- Um alle CDs zu sammeln habe ich ein ArrayList zur Verfügung

Meine Idee war ja: Die Container ganz (!) in das ArrayList zu legen. Liegt da mein Denkfehler. Wie kann ich das realisieren?
 
Jo, hab ich doch. ABER der Knoten liegt vielmehr im ganzen Konzept.
Also Vorgabe ist: ArrayList zu benutzen und Console. Alles andere kann frei gewählt werden.

Meine Frage ganz konkret: Kann ich CDObjekte nicht in ein ArrayList füllen? Quellcode hab ich leider wieder umgebaut. Ging auf jeden Fall nicht.

Mein Grundproblem ist eben, dass ich jetzt zwar mit meiner Klasse CDObjekte sauber erzeugen kann, aber die nicht in mein Array rein kriege. Ich brauche einen Weg, mit dem ich einzelne CDs sauber ausgeben kann und löschen. :autsch:
Jetzt gibt mir mein CDObjekt ein ArrayList mit den Attributen zurück und füllt es quasi in ein neues ArrayList, ABER als String der Reihe nach, was aber das Ansprechen wieder erschwert. Wo liegt mein Denkfehler?
 
Ich lös das mal auf:
Java:
List<Integer> ints = new ArrayList<>();
ints.add(1);
Integer firstInteger = ints.get(0);

List<String> strings = new ArrayList<>();
strings.add("Hallo");
String firstString = strings.get(0);

List<CDObject> cds = new ArrayList<>();
cds.add(new CDObject());
CDObject firstCd = cds.get(0);

// Bumm! Geht nicht, ich kann aus einer CD-Liste nur CDs rausholen
String cdString = cds.get(0);

// Bumm! Geht auch nicht, ich kann aus einer String-Liste nur Strings rausholen
CDObject cd = strings.get(0);
Konzept verstanden? Das wäre durch eine einfache google-Recherche auch innert 5 Minuten selbst zu realisieren gewesen. Durch Deine Weigerung, das zu tun und Quellcode zu posten hast du den Unmut auf Dich gezogen.
 
Zuletzt bearbeitet von einem Moderator:
Jo, Generics! :rtfm:
Danke auf jeden Fall. Ich benutze Google und alles mögliche was es gibt. Aber manchmal fehlen einem die richtigen Stichwörter. :idea:
Sourcecode hätte ich jetzt gerade gepostet...
 

Zurück
Oben