Auf Thema antworten

Jetzt ist doch noch ein Problem aufgetaucht, und zwar nehme ich ja an den Elementen der beiden arrayLists Änderungen vor (bestimmte Eigenschaften werden angepasst), jetzt werden diese Änderungen aber in den Elementen beider Listen vorbenommen, da es sich ja -wenn ich Euch richtig verstehe- auch hier nur um Referenzen auf die eigentlichen Objekte handelt (auch in meiner Variante mit der Schleife).


Wie genau müsste ich denn z.B. mit dem Copy Constructor vorgehen, um die Elemente tatsächlich zu kopieren, damit die ursprünglichen Elemente der ursprünglichen Liste nicht verändert werden?


Ich habe es auf folgende Weise versucht, indem ich den copy constructor an meine obige Schleife angehängt habe (damit die arrayList auch genug Plätze hat):

[Java]

     for(int i = arrayList.size()-1; i >=0 ; i--){

          School s = (School)arrayList.get(i);

          arrayList2.add(s);

               }    

    

      Collections.copy(arrayList2,arrayList);

[/Java]

Jetzt müsste nach meinem Verständnis, die arrayList2 Duplikate der Elemente aus arrayList enthalten, d.h. wenn ich an diesen Objekten Änderungen vornehme, müssten die Objekte in der ersten Liste unverändert bleiben. Allerdings ist dem leider nicht so. Kann ich irgendwie erreichen, dass die Objekte wirklich dupliziert werden? Viell. mit clone()?


Danke

Tartaglia



Oben