Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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:
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?
@TO: Du weisst offensichtlich nicht wie man mit Collections (wie der ArrayList) umgeht. Ausserdem hast du bzgl. deines ArrayList Problems keinen sinnvollen Code, geschweige denn ein KSKB gepostet. Guck dir diesen Link an: Java ist auch eine Insel – 11 Datenstrukturen und Algorithmen
Es ist ohne Probleme möglich beliebige Objekte in eine ArrayList zu packen.
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.
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...