Java HashMap - 深层复制

Smo*_*lda 15 java hashmap deep-copy

我只是想找出如何制作深层副本的最佳解决方案HashMap.此映射中没有实现的对象Cloneable.我想找到比序列化和反序列化更好的解决方案.

ste*_*ong 13

看一下Deep Cloning,在Google Code上你可以找到一个库.您可以在https://github.com/kostaskougios/cloning上阅读.

它的工作原理很简单.这可以克隆任何对象,并且对象不必实现任何接口,如可序列化.

Cloner cloner = new Cloner();
MyClass clone = cloner.deepClone(o);
// clone is a deep-clone of o
Run Code Online (Sandbox Code Playgroud)

但要注意:这可能会克隆数千个对象(如果克隆的对象有很多引用).此外,复制文件或流可能会导致JVM崩溃.

但是,您可以忽略类的某些实例,例如streams等.值得检查这个库及其来源.