我想克隆一个以对象为值的HashMap。它是如何工作的?
发布于 2011-11-21 05:21:11
你是指像这样的东西吗:
public static <K, V extends MyObject>
HashMap<K, V> CloneHashMap (HashMap<K, V> input) {
HashMap<K, V> output = new HashMap<K, V>();
for(K key: input.keySet()) {
output.put(key, (V)(input.get(key).clone()));
}
return output;
}其中MyObject是一个可克隆的对象:
public class MyObject implements Cloneable {
@Override
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
return null;
}
}
}发布于 2011-11-21 10:24:49
不清楚你在问什么。您是否正在尝试克隆HashMap及其所有内容?或者您只是想创建Map的副本?
如果您只是想要一个Map的副本,那么可以使用HashMap上的copy构造函数。
HashMap copy = new HashMap(sourceMap);这将使用与源映射相同的键和值对象创建第二个映射。如果你想要一个深度克隆,意味着你想要新的但等价的对象,你需要做一些类似@Tudor建议的事情
https://stackoverflow.com/questions/8204565
复制相似问题