Slyh: Geschachtelte Liste

Beitrag lesen

Hallo,

Leider wird mir auch so nur zweimal "id" und "name" ausgegeben.

Äh, ja, klar. Das hab ich übersehen:

data[0] = "class";
data[1] = "main";
list.add( data );

»»

data[0] = "id";
data[1] = "Hauptfeld";
list.add( data );

Du legst zweimal _dasselbe_ Array in der 'list' ab. Arrays sind in Java
Objekte und werden daher wie jedes andere Objekt auch als Referenz
übergeben. D.h. daß die add-Methode in beiden Fällen eine Referenz auf
dasselbe Array übergeben bekommt. Nur die Referenz wird in der 'list'
abgelegt, nicht aber die konkreten Werte.

Wenn du jetzt also über list.get(int) (bzw. eben der Iterator) den
Wert wieder versuchst aus der 'list' rauszuholen, wird dir nur wieder
eine Referenz auf das Array zurückgeliefert. In dem Array stehen die
Werte drin, die du zuletzt hineingeschrieben hast. In deinem Fall ist
dies "id" und "Hauptfeld".

Du hättest nach deinem zweiten "list.add(data)"-Aufruf auch nochmal
z.B. date[0] = "lirumlarum" schreiben können. Dann wäre die Ausgabe
eben "liarumlarum Hauptfeld".

Wenn dir das nicht klar ist/wurde, solltest du dich dringend mit
Referenzen beschäftigen. Anders wirst du mit Java nicht glücklich
werden...

Gruß
Slyh