ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
242
242
EMPFEHLEN
-
Ich habe eine ArrayList erstellt, in der ich Objekte der Klasse Daten speichern möchte. nun habe ich die Liste so initialisiert:
Daten neu = new Daten();
ArrayList<Daten> liste = new ArrayList<Daten>();
soweit so gut.
nun wollte ich verschiedene Dinge in der Liste speichern wie man sich denken kann. Dazu folgte dieses:
while ((ein = datei.readLine()) != null) //Zeilenwechsel einer Datei
{
.....
neu.daten(volumen, name, domain, ip, url); //Hier übergeb ich Parameter, die im Objekt Daten gespeichert werden.
liste.add(neu); //Die Liste wird mit dem Objekt gefüllt
}
System.out.println(liste);
Wenn ich mir jetzt die Liste anzeigen lasse werden mir dort nicht pro Listenplatz unterschiedliche Daten angezeigt, sondern alle Plätze haben den gleichen Inhalt. Immer gleiche Namen, gleich Domain..... Was könnte ich da vergessen haben?
-
Moin,
ein wenig rar der Code aber naja.
Erst einmal fällt mir auf, dass Du immer ein und dasselbe Objekt in Deiner Liste speicherst.
Du solltest schon ein neues Objekt übergeben à la:
Code :1 2 3 4 5 6 7 8
while ((ein = datei.readLine()) != null) { [...] Daten new = new Daten(Parameter); liste.add(new); liste.add(new Daten(Parameter)); // abgespeckte Version }
Überprüfe aber bitte auch Deine Paramater, ob diese sich wirklich ändern, z.B. mit println().
Gruß,
Xan
-
Danke dir, dass könnte schon der Hinweis sein, den ich brauche. Werde es gleich einmal ausprobieren
-
Schade, es hörte sich nach einer Lösung an, war es aber leider nicht...
Ich habe mir auch mal die Parameter angeschaut, und mir die in jedem Durchlauf angeben lassen, diese sind in jedem Durchlauf auch anders.
Die Liste jedoch enthält immernoch die gleichen Objekte, keine Unterschiede. An jeder Position steht immer das allerletzte Objekt, d.h. dass auch an der ersten Position der Liste der Inhalt der letzten Position steht.....
Genauerer Aufbau der Schleife:
while ((ein = datei.readLine()) != null)
{
Festlegen der Parameter;
Daten neu = new Daten(Parameter);
liste.add(neu);
liste.add(new Daten(Parameter);
}
Die Liste hat sich auch wunderbar dynamisch erweitert, jedoch steht an jeder Position das zuletzt erstellte Objekt.
-
Hallo,
vielleicht solltest du mal die ganze while-Schleife mal posten.
Das ganze wird daran liegen, dass in jedem Daten-Object, das gleiche Object ist. Wenn du dann halt einmal die Daten änderst, sind sie bei allen Feldern in der Liste geändert.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Dummer Fehler meinerseits:
Die Eigenschaften in der Klasse Daten waren static,
somit war es klar, dass sich immer wieder alles überschreibt.....
Ich bedanke mich an dieser Stelle für eure Mühe und entschuldige mich für meinen Fehler.
Ähnliche Themen
-
ArrayList in einer ArrayList
Von xXchrissiXx im Forum JavaAntworten: 8Letzter Beitrag: 10.04.07, 10:14 -
Inhalt einer ArrayList in andere ArrayList kopieren
Von Pierre im Forum .NET ArchivAntworten: 2Letzter Beitrag: 05.07.05, 16:58 -
Newsscript - Nachfrage
Von TequillaSun im Forum PHPAntworten: 2Letzter Beitrag: 27.12.04, 01:31 -
exe starten ohne nachfrage
Von mihawk im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 14.02.04, 14:47





Zitieren

Login





