cloner utilitaire pour HashMap en java
Est là utilitaire java qui ne clone()
méthode pour HashMap
telle sorte qu'il n'copie des éléments de la carte et pas seulement la carte de l'objet (comme le clone()
dans HashMap
classe)?
- Une note de côté: si vos éléments sont immuables à travers l'objet graphique, vous n'avez pas besoin de les cloner.
Vous devez vous connecter pour publier un commentaire.
Quels sont les autres objets visés dans les éléments? Quelle profondeur vous voulez que votre clone?
Si votre carte éléments n'ont pas de profondeur et/ou références tout est
Serializable
, vous pouvez sérialiser la carte viaObjectOutputStream
dans unByteArrayOutputStream
et puis désérialiser tout de suite.La seule autre alternative est de le faire manuellement.
La DONC, la question Profonde cloner utilitaire recommandation est similaire à celui-ci, et a une réponse qui peut être utile pour vous.
Pour résumer, ils recommandent d'utiliser des le Clonage de la bibliothèque de Google Code. Par expérience personnelle, profondément à l'-copies
HashMap
s. Il peut même clone des choses qui ne sont pasCloneable
.Une fois que vous connaissez votre paire clé/valeur sont des éléments de clonable:
Prendre un coup d'oeil à la deepClone méthode à http://www.devdaily.com/java/jwarehouse/netbeans-src/db/libsrc/org/netbeans/lib/ddl/impl/SpecificationFactory.java.shtml . Il n'est pas générique, mais il comprend plusieurs types intégrés (y compris HashMap lui-même, de manière récursive), et peut évidemment être étendue.
Souvent copie doit être profond. Voici un exemple de la manière de "copie"
code: