# Shallow Copy / Deep Copy von Objekten



## Sindbad1983 (2. Dez 2004)

Hi!

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

Danke,Tommy


----------



## meez (2. Dez 2004)

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...


----------



## Sindbad1983 (2. Dez 2004)

aha...gibts noch ein anderes Beispiel?


----------



## Bleiglanz (2. Dez 2004)

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


----------



## bygones (2. Dez 2004)

das gilt für alle Collection und Map Typen (also haste ein paar Bsp  )


----------

