Collections in Instanzattributen als Kopie übergeben

Status
Nicht offen für weitere Antworten.

Jay1980

Bekanntes Mitglied
Servus,

ich habe in einem Instanzattribut eine Collection gespeichert, sagen wir eine Collection das Point-Objekte fasst. Jetzt will ich diese einem anderen Objekt übergeben, aber nicht als Referenz sondern nur per Wert. Die Übergabe soll so sein, dass die Werte der Points auch mitgehen.

Wenn das andere Objekt, dass die Collection erhalten hat, diese cleart, darf die Collection im Ursprungsobjekt nicht geändert werden - wie mache ich das?

Aktuell habe ich ein Objekt der Klasse 'MeineUrsprungsklasse' namens 'ursprungObjekt' und eine Klasse 'MeineEmpfaengerklasse' mit dem Objekt 'empfaengerObjekt'. Die Collection die ruebergekarrt werden soll, trägt den Namen 'pointsColl'.

Mein erster Ansatz war, dass ich vor jeder Übergabe der Collection eine Kopie von 'ursprungObjekt' mittels Copy-Konstruktor angelegt habe 'ursprungObjektKopie' und dann mittels 'empfaengerObjekt.setPointsColl(ursprungObjektKopie.getPointsColl);' . Komischerweise wird wenn ich nun 'pointsColl.clear()' auf dem Empfängerobjekt aufrufe, auch die Collection des Ursprungsobjekt gelöscht - ist das normal und wie löst ihr gewöhnlich diese Herausforderung?
 
S

SlaterB

Gast
kein Kommentar im alten Thread und zusammenhangslos einen neuen?
hättest du genausogut da fragen können,
ohne nähere Infos kann das eh niemand anders beantworten
http://www.java-forum.org/allgemeine-java-themen/83931-raetselhaftes-verhalten-von-collections.html

du erstellst zwar ein neues ConvexHull-Objekt
> jchcopy = new JobaConvexHull( jch );

aber dieses verwendet dieselbe Liste:

> JobaConvexHull( JobaConvexHull j ) {
> // Copy-Konstruktor, siehe JavaInsel8 S. 359
> [..|
> points = j.points;

wenn du weißt, dass du eine Liste an das DrawPanel ohne Kopie übergibst,
dann könntest du auch erahnen, dass hier dieselbe Liste nun in beiden Objekten enthalten ist

eine Kopie der Liste wäre
new ArrayList<Point>(alteListe)

dies wiederum fügt dieselben Punkte (keine Kopien) in eine zweite Liste ein,
das dürfte reichen
 
S

Spacerat

Gast
...so ganz allgemein beantwortet... Es gibt in der Klasse "Collections" diverse statische Methoden, die solche Zwecke erfüllen. z.B. "unmodifiableXXX" (XXX steht für Map, Set, List usw.)
 
M

maki

Gast
Vielleciht wäre eine Suche nach deep copy vs. shallow copy auch ganz gut.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K jackson deserializer - Collections Allgemeine Java-Themen 6
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
Hacer Generics & Collections Allgemeine Java-Themen 8
C Generic collections und static typing Allgemeine Java-Themen 4
J Collections, Locks und volatile ? Allgemeine Java-Themen 1
A Compiler-Fehler Woher kommt der NullPointer? (Collections & Iterator) Allgemeine Java-Themen 7
E Collections Collections die Subojekte einer Klasse enthält? Allgemeine Java-Themen 7
O Collections Eigene Methodenzusicherung bei Collections als Parameter Allgemeine Java-Themen 2
D generische Klasse für alle Maps (nicht Collections :-)) Allgemeine Java-Themen 11
B zwei-dimensionale Collections bzw. Array mit Indizes Allgemeine Java-Themen 3
Landei immutable Collections Allgemeine Java-Themen 27
J Rätselhaftes Verhalten von Collections Allgemeine Java-Themen 5
A Collections.emptySet() und triärer Operator Allgemeine Java-Themen 5
M Double Braces Notation um Collections zu initialisieren Allgemeine Java-Themen 9
W Komplexität von addAll() bei Collections Allgemeine Java-Themen 4
K Collections oder Vektoren sicher zu serialisieren? Allgemeine Java-Themen 5
W sortierte Iteration über Set oder Map, bzw. Collections Allgemeine Java-Themen 5
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
S Wie "zufällig" ist Collections.shuffle(.) Allgemeine Java-Themen 1
S Collections.binarySearch(list,"a") Allgemeine Java-Themen 7
T Sortierung mit Collections.sort() Allgemeine Java-Themen 4
J Collections Allgemeine Java-Themen 2
F Vererbung, Generizität und Collections. Allgemeine Java-Themen 7
G Collections als Array implementieren Allgemeine Java-Themen 2
F Naming Conventions (Collections) Allgemeine Java-Themen 8
K Elegante Lösung zum Manipulieren von Collections gesucht Allgemeine Java-Themen 16
T Collections/Arrays sortieren => ä, ö, ü, ß Groß/klein Allgemeine Java-Themen 3
R Probleme mit Collections - Teil 2 Allgemeine Java-Themen 4
R Probleme mit Collections Allgemeine Java-Themen 5
L-ectron-X Problem mit Collections.sort() mit Java 1.5 Allgemeine Java-Themen 9
C Collections.binarySearch Allgemeine Java-Themen 1
R Entsprechung von Stack() im Collections Framework...? Allgemeine Java-Themen 4
C Best Practice Tiefe Kopie eines Arrays unbekannter Dimension und unbekannten Typs Allgemeine Java-Themen 4
C Methode für tiefe Kopie eines unbekannt (dimensionierten & typisierten) Feldes realisierbar? Allgemeine Java-Themen 7
M Neue Instanz/Kopie einer unbekannten Klasse Allgemeine Java-Themen 7
reibi Kopie einer Liste Allgemeine Java-Themen 4
E tiefe Kopie nicht serialisierbarer Objekte Allgemeine Java-Themen 3
N for (String s : StringArray) : Kopie oder Verweis? Allgemeine Java-Themen 9
M "Kopie" von JLabels werden nicht gezeichnet Allgemeine Java-Themen 10
G Kopie eines FileReader Allgemeine Java-Themen 4
S Tiefe Kopie einer Baumstruktur als statische Methode Allgemeine Java-Themen 8
Z Echte Kopie eines Objektes erstellen Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben