Shallow Copy / Deep Copy von Objekten

Status
Nicht offen für weitere Antworten.

Sindbad1983

Top Contributor
Hi!

Wer kann mir auf verständliche Weise den Unterschied zwischen diesen beiden erklären?
Eventuell mit einem ansehnlichen Beispiel?

Danke,Tommy
 
shallow copy ist wenn du zum Beispiel ein ArrayList kopierst...Da wird nur die Liste selber kopiert nich aber deren Inhalt...
Mit deep copy wird auch der Inhalt mitkopiert...
 
objekt foo hat eine Member variable

private List liste;

wenn du eine Shallow Copy machst, dann verweist das member in der Kopie auf die gleiche Liste, d.h. Änderungen in Kopie betreffen auch das Original

deep copy würde allen Objektpfaden ("the web of objects") folgen und von jedem referenzierten Objekte eine Kopie machen (lies mal nach zum Theme clone())

kurz gesagt

shallow: primitive member kopiert, bei Object Members die referenz kopiert

deep: primitive member kopiert, bei Object Members allen referenzen folgen und alle erreichbaren Objekte selbst kopieren
 
das gilt für alle Collection und Map Typen (also haste ein paar Bsp 😉 )
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben