Veröffentlicht 1. Oktober 200420 j 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
1. Oktober 200420 j 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
1. Oktober 200420 j 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
1. Oktober 200420 j 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
1. Oktober 200420 j 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
1. Oktober 200420 j Autor ja das mit dem stream hab ich auch im netz gefunden, wollte allerdings ersmal fragen, ob jmd ne andere (einfachere) mögl. kennt.
12. November 200420 j 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...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.