mkScheller Geschrieben 1. Oktober 2004 Geschrieben 1. Oktober 2004 Hallo, kennt jemand zufällig eine einfach Möglichkeit eine "deep copy" für eine Hashtable zu machen?? Denn über folg. Sourcecode erhält man ja keine deep copy: Hashtable newHashtable = new Hashtable(); newHashtable.putAll(hashtableOldValues); Gruss/Regards Zitieren
kingofbrain Geschrieben 1. Oktober 2004 Geschrieben 1. Oktober 2004 Ich wüsste keine API-Lösung, da Du dafür ja sicherstellen müsstest, das Deine Keys und Values Clonable sind. Du kannst Dir aber recht einfach eine Lösung bauen, indem Du Deine eigene Collection definierst, die intern mit einer Hashtable arbeitet, aber nur Cloneable Objekte übernimmt. Dann kannst Du in der Methode clone() Deiner Collection über das keySet iterieren, zu jedem Key das Value ermitteln, beide Klonen und in die neue Hashtable schreiben. Peter Zitieren
Jaraz Geschrieben 1. Oktober 2004 Geschrieben 1. Oktober 2004 Hi, das geht mit: hashtable.clone(); Voraussetzung ist allerdings das alle Objekte und Unterobjekte in der Hashtable das Interface Clonable implementieren und die Funktion clone() korrekt überschreiben. Gruß Jaraz Zitieren
kingofbrain Geschrieben 1. Oktober 2004 Geschrieben 1. Oktober 2004 Servus Jaraz, das hatte ich erst auch gedacht, aber die API sagt zu Hashtable#clone(): Creates a shallow copy of this hashtable. All the structure of the hashtable itself is copied, but the keys and values are not cloned. This is a relatively expensive operation. Peter Zitieren
Jaraz Geschrieben 1. Oktober 2004 Geschrieben 1. Oktober 2004 das hatte ich erst auch gedacht, aber die API sagt zu Hashtable#clone(): Creates a shallow copy of this hashtable. All the structure of the hashtable itself is copied, but the keys and values are not cloned. This is a relatively expensive operation. Skandal! Quick and Dirty Workaround! Alles Serialisierbar machen und durch nen Stream jagen. Gruß Jaraz Zitieren
mkScheller Geschrieben 1. Oktober 2004 Autor Geschrieben 1. Oktober 2004 ja das mit dem stream hab ich auch im netz gefunden, wollte allerdings ersmal fragen, ob jmd ne andere (einfachere) mögl. kennt. Zitieren
Biese Geschrieben 12. November 2004 Geschrieben 12. November 2004 Hi, Eine Liste, die garantiert eine tiefe Kopie ALLER enthaltenen Objekte macht, egal was drin liegt? CoOL Ich stell mir dann immer Listen vor, in denen Listen sind, die Listen mit Listen speichern MUAAHAA Oder was ähnliches... Übel wird diese Tiefenkopie allerdings, wenn in der Letzen Liste eine Referenz auf die Ursprüngliche Liste gespeichert ist. Dann läuft man ins Nirvana. Ein Teufelskreis Also sind diese generischen "All-in-Wonder" - Tiefenkopien eigentlich nicht so sinnvoll... finde ich jedenfalls... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.